js跨域是什么意思,js解决跨域的几种办法
本教程运行环境:windows10系统,javascript1.8.5版本1.8.5,戴尔G3电脑。
javascript跨域的原因是什么
跨域问题是浏览器同源策略的限制。当前域名的js只能读取同一域下的窗口属性。
由于浏览器同源政策的限制。同源策略是一种协议,是浏览器最核心、最基础的安全功能。如果同源策略缺失,浏览器的正常功能可能会受到影响。可以说,Web是基于同源策略的。浏览器只是同源策略的一种实现。同源策略防止一个域中的javascript脚本与另一个域中的内容进行交互。所谓同源(即在同一个域内)是指两个页面具有相同的协议、主机和端口号。
简单来说,相应的策略是浏览器禁止不同域之间的JS交互,以保证用户信息的安全,防止恶意网站窃取数据。就浏览器而言,只要其中一个域名、协议、端口不同,就会触发同源策略,从而限制它们之间的以下交互行为:
1.无法读取cookies、LocalStorage和IndexDB。
2.无法获取DOM
3.无法发送AJAX请求。
跨域的严格定义是:只要协议、域名、端口有任何不同,就视为跨域。
跨域的解决方案
JSONP:DataType:“JSONP”需要添加到请求方法中。//数据格式设置为JSONP,JSONP:“回调”,//jQuery生成验证参数的名称。
1.dataType,必须设置为jsonp。
2.jsonp,这个参数的值需要和服务器商定。
Nginx反向代理
Webpack配置反向代理:直接使用scaffold devServer配置反向代理,解决开发过程中的跨域问题。
跨域资源共享(CORS)
Nodejs跨域:在本地使用nodejs,通过那个服务器在后台调用一个服务器返回数据,然后返回到前端服务器,没有跨域。
WebSocket协议跨域
通过JSONP
自己理解:JSONP是利用脚本标签的src属性实现跨域,只用get请求,后台会返回给你一个方法,通过这个方法你可以得到你想要的数据。
jsonp原理前端定义的方法通过src属性传递给后端。后端得到方法后,将数据拼接方法传递给前端,作为方法调用。
JSONP主要是以打包请求的方式增加一个回调,这个回调是前后台一致同意的。
推荐:javascript学习教程以上是javascript为什么跨域的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。