jquery跨域Ajax请求

来源:互联网 发布:贵州省体育大数据公司 编辑:程序博客网 时间:2024/05/17 06:39

关键:ajax的dataType为jsonp,并且在请求的url中加上"?jsoncallback=?"

前台代码:

Html代码  收藏代码
  1. <script type="text/javascript" src="jquery-1.7.2.min.js"></script>   
  2. <script type="text/javascript">  
  3.     function RegisterRequest2() {  
  4.         /* getJSON method is ok also...   
  5.         $.getJSON("http://192.168.1.154:7087/ClusterServer/Rigister?jsoncallback=?", { pwd: '123', username: 'tl' }, function(json) { alert(json.name); });   
  6.         */  
  7.            
  8.         $.ajax({  
  9.             url: "http://192.168.1.154:7087/ClusterServer/Rigister?jsoncallback=?",  
  10.             type: "GET",  
  11.             data: { pwd: '123', username: 'tl' },  
  12.             dataType: "jsonp",  
  13.             success: function(data) {  
  14.                 alert(data.name);  
  15.             },  
  16.             error: function(a, b, c) {  
  17.                 alert("error==" + b);  
  18.             }  
  19.   
  20.         });   
  21.     }    
  22. </script>  
  23. <input type="button" onclick="RegisterRequest2();"  value="StartRequest" />  

 

后台Servlet代码:

Java代码  收藏代码
  1. import java.io.IOException;  
  2.   
  3. import javax.servlet.ServletException;  
  4. import javax.servlet.http.HttpServlet;  
  5. import javax.servlet.http.HttpServletRequest;  
  6. import javax.servlet.http.HttpServletResponse;  
  7.   
  8. public class Rigister extends HttpServlet {  
  9.   
  10.     @Override  
  11.     protected void doGet(HttpServletRequest req, HttpServletResponse resp)  
  12.             throws ServletException, IOException {   
  13.         String pwd = req.getParameter("pwd");  
  14.         String username =req.getParameter("username");  
  15.         System.out.println("get=="+username+"  ==="+pwd);  
  16.            
  17.         String callback = req.getParameter("jsoncallback");   
  18.         resp.getWriter().write(callback + "({name:'tzy',phone:'123'})"); //参数为json格式  
  19.     }  
  20.   
  21.     @Override  
  22.     protected void doPost(HttpServletRequest req, HttpServletResponse resp)  
  23.             throws ServletException, IOException {   
  24.         String pwd = req.getParameter("pwd");  
  25.         String username =req.getParameter("username");  
  26.         System.out.println("post=="+username+"  ==="+pwd);  
  27.            
  28.         String callback = req.getParameter("jsoncallback");   
  29.         resp.getWriter().write(callback + "({name:'tzy',phone:'123'})");   
  30.     }  
  31.   
  32. }  

 

后台返回前台的时候取出jsoncallback回调函数名,将json格式的数据作为函数的参数,整个以字符串的形式返回给前台。。

原创粉丝点击