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

我们在开发中经常遇到不同域名之间资源交互,比如前台系统利用后台系统提供的接口请求需要的资源
这时候就会发生浏览器对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(){}
});
阅读更多
个人分类: 跨域 ajax 浏览器
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭