浏览器限制ajax跨域请求问题------SSM解决方案

来源:互联网 发布:新疆网络墙 编辑:程序博客网 时间:2024/06/03 18:31

我们在开发中经常遇到不同域名之间资源交互,比如前台系统利用后台系统提供的接口请求需要的资源
这时候就会发生浏览器对ajax的限制,不允许跨域请求资源
例子:
http://www.a.com | http://www.b.com 是跨域
http://www.a.com | http://www.a.com:8080 是跨域
http://a.a.com | http://b.a.com 是跨域
http://www.a.com | http://www.a.com/api 不是跨域
所以不同域名不同端口都是跨域请求

对于这种情况,我们使用jsonp来解决
Jsonp的原理:
1、jsonp通过script标签的src可以跨域请求的特性,加载资源
2、将加载的资源(通过一个方法名将数据进行包裹)当做是js脚本解析
3、定义一个回调函数,获取传入的数据
4、通过优化可以将回调函数名传到服务器端返回

以上是原理
直接的使用方式是在ajax请求中直接将dataType返回数据类型设置为jsonp类型即可
例如

$.ajax({    url:"http://www.baidu.com",    type:"get",    dataType:"jsonp",    success:function(data){        alert(data);//请求成功    },    error:function(){}});
0 0