jquery跨域Ajax请求

简介:

关键: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格式的数据作为函数的参数,整个以字符串的形式返回给前台。。





     本文转自布拉君君 51CTO博客,原文链接:http://blog.51cto.com/5148737/1568749,如需转载请自行联系原作者


相关文章
|
3天前
|
XML 前端开发 JavaScript
|
20天前
|
JSON JavaScript 前端开发
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
《进阶篇第6章:vue中的ajax》包括回顾发送ajax请求方式、vue-cli脚手架配置代理服务器、vue-resource
55 22
|
20天前
|
前端开发 JavaScript
回顾前端页面发送ajax请求方式
回顾前端页面发送ajax请求方式
36 18
|
20天前
|
前端开发 JavaScript Java
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
第6章:Vue中的ajax(包含:回顾发送ajax请求方式、vue-cli脚手架配置代理服务器)
47 4
|
29天前
|
前端开发 JavaScript 数据处理
JQuery 拦截请求 | Ajax 请求拦截
【10月更文挑战第4天】
68 1
|
2月前
|
前端开发
React技术栈-react使用的Ajax请求库实战案例
这篇文章介绍了在React应用中使用Axios和Fetch库进行Ajax请求的实战案例,展示了如何通过这些库发送GET和POST请求,并处理响应和错误。
51 10
React技术栈-react使用的Ajax请求库实战案例
|
2月前
|
前端开发
React技术栈-react使用的Ajax请求库用户搜索案例
这篇文章展示了一个React技术栈中使用Ajax请求库(如axios)进行用户搜索的实战案例,包括React组件的结构、状态管理以及如何通过Ajax请求获取并展示GitHub用户数据。
31 7
React技术栈-react使用的Ajax请求库用户搜索案例
|
2月前
|
JSON 前端开发 JavaScript
jQuery AJAX 方法
jQuery AJAX 方法
31 1
|
2月前
|
JSON JavaScript 前端开发
Jquery常用操作汇总,dom操作,ajax请求
本文汇总了jQuery的一些常用操作,包括DOM元素的选择、添加、移除,表单操作,以及如何使用jQuery发送Ajax请求,涵盖了GET、POST请求和文件上传等常见场景。
|
2月前
|
JSON 资源调度 JavaScript
Vue框架中Ajax请求的实现方式:使用axios库或fetch API
选择 `axios`还是 `fetch`取决于项目需求和个人偏好。`axios`提供了更丰富的API和更灵活的错误处理方式,适用于需要复杂请求配置的场景。而 `fetch`作为现代浏览器的原生API,使用起来更为简洁,但在旧浏览器兼容性和某些高级特性上可能略显不足。无论选择哪种方式,它们都能有效地在Vue应用中实现Ajax请求的功能。
36 4