关于跨域问题

作者: 会飞的猪l | 来源:发表于2017-12-13 17:23 被阅读79次

跨域首先要知道域是什么?域(Domain)是Windows网络中独立运行的单位,域和域之间相互访问,则需要建立信任关系。信任关系是连接在域和域之间的桥梁。当一个域和其他域建立信任关系之后,两个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。有一种简明的说法来解释广域跨域:跨域访问,简单来说就是A网站的js代码试图访问B网站,包括提交内容,获取内容,由于安全问题,跨域访问是被各大浏览器所默认禁止的。
在广域网环境下,由于浏览器安全限制,网络连接的跨域访问时不被允许的。
XMLhttprequest也不例外,但有时候跨域访问是必须的。
跨域问题的产生: 简单来说

浏览器有同源策略,只能在同端口,同协议,同域名下才能进行数据交互。例如:在公司开发项目时,前后端服务器可能不是一个,因为可能通过webpack,gulp,搭建的开发服务器,就需要解决跨域问题,再例如,大公司数据服务器肯定不止一个,所以跨域问题是必然存在的。

跨域问题的解决
一:JSONP解决跨域问题
JSONP是前后端解决跨域方式的一种,原理是通过script的src属性解决跨域问题,因为src属性是不受同源策略的影响,JSONP是资料格式JSON的一个‘使用模式’,可以让网页从别的网域获取资料。
二:CORS(跨域资源共享)
CORS跨域资源共享,定义了必须在访问跨域资源时,浏览器和服务器如何沟通,CORS背后的原理就是使用自定义的HTTP头部让浏览器和服务器进行沟通,从而决定响应和请求是成功还是失败。
三:使用window.name来进行跨域
window下有一个属性叫name,这个name有一个特征:即在同一个窗口(window)的生命周期li,窗口载入所有页面都有一个都共享一个window.name,每个页面都有对window.name读写的权利。window.name是持久存在窗口载入的页面中。
四:使用H5的window.postMessage
postMessage这是H5新增的api,可以使用他向其他window发送消息,无论这个window是同源或者不同源。目前主流浏览器都已经支持该方法。

相关文章

  • 无标题文章

    关于axios跨域的问题

  • 前端踩过的坑

    关于前端 跨域问题 大概问题 1,前端无须处理,需要在后台配置 niginx的配置 处理跨域的域名 关于布局上 ...

  • 深入跨域问题(3) - 利用 JSONP 解决跨域

    深入跨域问题(1) - 初识 CORS 跨域资源共享;深入跨域问题(2) - 利用 CORS 解决跨域深入跨域问题...

  • window.URL 与 跨域

    跨域 关于跨域问题,简单来说就是通过地址访问资源时,所用的协议不同导致无法访问目标。 网上已经有很多关于跨域的主流...

  • 跨域请求CORS

    前沿: 最近总听到同事聊跨域得问题,于是自己抽空仔细的查阅了一下关于跨域的知识。说到跨域,就得提到同源,跨域是指一...

  • 深入跨域问题(2) - 利用 CORS 解决跨域

    阅读目录: 深入跨域问题(1) - 初识 CORS 跨域资源共享;深入跨域问题(2) - 利用 CORS 解决跨域...

  • 关于跨域问题

    前端解决跨域问题方法:1、在返回头加入headers: { "Access-Control-Allow-Origi...

  • 关于跨域问题

    跨域首先要知道域是什么?域(Domain)是Windows网络中独立运行的单位,域和域之间相互访问,则需要建立信任...

  • 关于跨域问题

    常见的解决方案可以从服务端考虑,也可以从代理层(一般都是Nginx/openrestry)考虑;解决跨域核心是添加...

  • 跨域与常用方案

    本文源自一次内部关于跨域的讨论分享的总结 理解跨域的重点在于:了解跨域产生的场景、原理 跨域问题只在浏览器客户端环...

网友评论

    本文标题:关于跨域问题

    本文链接:https://www.haomeiwen.com/subject/bikuixtx.html