微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何快速解决JS或Jquery ajax异步跨域的问题

简单的概括下,解决办法有两种。

一种是jsonp方式:即在前端发送异步请求时,添加相关的jsonp设置或配置;后端则返回可供jsonp解析的格式的串。

但是jsonp方式只支持get的请求方式,并且不被新浏览器版本的支持(新浏览器版本多进行OPITION请求--异步安全检查的测试的请求,所以jsonp方式无法通过),

这里就不多了解了。

一种是cros方式,优点就是更安全,能指定连接白名单,能限定请求方法(也就是支持多种请求方法),主流浏览器都支持。主要说一下实现方式,

前端:和普通异步请求一样的格式,如:

rush:xhtml;"> $.ajax({ url :'http://localhost:8080/myProject/test' type : "GET",//不局限于get data:{"key1":value1,"key2":value2},async : true,success : function(data) { var dataObj=eval("("+data+")"); console.log(dataObj);

},error : function(data) {
alert( "服务器连接失败 ajaxJsonp" );
}
});

后端:主要是设置响应头参数

rush:xhtml;"> response.setHeader("Access-Control-Allow-Origin","*");//设置可跨域资源共享的域名,只能设置一个具体的域名,但*可以代表所有 response.setHeader("Access-Control-Allow-Methods","GET,POST,PUT,OPTIONS");//设置可跨域资源共享的请求方式 response.setHeader("Access-Control-Allow-Credentials","true"); response.setHeader("Access-Control-Allow-Headers","Origin,X-Requested-With,Content-Type,Accept");

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐