码迷,mamicode.com
首页 > Web开发 > 详细

js跨域访问问题

时间:2019-08-03 00:36:31      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:set   cors   hub   ora   框架   iframe   客户   dom   str   

1、什么是跨域访问

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。如果进行跨域访问,浏览器会报跨域访问异常

NO ‘Access Control-Allow-Origin‘ ....
CORS:Cross-orign resource sharing跨域分享资源

总之,当前页面你发送请求时只要协议、域名、端口号有一个与当前页面不一致都属于跨域访问。

2、跨域访问的解决方法

CORS解决方案

2.1 在Controller层的处理器上解决

后端解决方式一

//解决方法一:http://localhost:9105也可设置为*,表示那个域可以进行跨域访问,但是*号不能用cookie,允许访问的域
response.setHeader("Access-Control-Allow-Origin", "http://localhost:9105");
//----如果用了cookie信息-----,必须加后面这句话,如果不用cookie可以不加这句话
response.setHeader("Access-Control-Allow-Credentials", "true");

后端解决方式二

//解决方法二:在处理器方法上加注解,allowCredentials="true",默认为false
@CrossOrigin(origins="http://localhost:9105",allowCredentials="true")

在端口号为9105的web前端也要处理,以AngularJS为例,在Service.js中添加如下内容{‘withCredentials‘:true}

//而且客户端的请求也需要加参数{‘withCredentials‘:true} )
$http.get(‘http://localhost:9107/cart/addItemToCartList.do?itemId=‘+?+‘&num=‘+? ,{‘withCredentials‘:true} ).success.....

JSOUP解决方案

2.2 JSONP

参考https://dailc.github.io/2017/03/22/ajaxCrossDomainSolution.html

js跨域访问问题

标签:set   cors   hub   ora   框架   iframe   客户   dom   str   

原文地址:https://www.cnblogs.com/kitor/p/11291603.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!