怎样解决JS或Jqueryajax异步跨域的问题
小编给大家分享一下怎样解决JS或Jquery ajax异步跨域的问题,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了苍梧免费建站欢迎大家使用!
简单的概括下,解决办法有两种。
一种是jsonp方式:即在前端发送异步请求时,添加相关的jsonp设置或配置;后端则返回可供jsonp解析的格式的串。
但是jsonp方式只支持get的请求方式,并且不被新浏览器版本的支持(新浏览器版本多进行OPITION请求--异步安全检查的测试的请求,所以jsonp方式无法通过),
这里就不多了解了。
一种是cros方式,优点就是更安全,能指定连接白名单,能限定请求方法(也就是支持多种请求方法),主流浏览器都支持。主要说一下实现方式,
前端:和普通异步请求一样的格式,如:
$.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" ); } });
后端:主要是设置响应头参数
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");
以上是“怎样解决JS或Jquery ajax异步跨域的问题”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
分享文章:怎样解决JS或Jqueryajax异步跨域的问题
网站链接:http://ybzwz.com/article/gddeig.html