前端跨域问题怎么解决的(前端跨域问题怎么解决的呢)

前端跨域问题怎么解决的(前端跨域问题怎么解决的呢)一 跨域的类型 特别注意两点 第一 如果是协议和端口造成的跨域问题 前台 是无能为力的 第二 在跨域问题上 域仅仅是通过 URL 的首部 来识别而不会去尝试判断相同的 ip 地址对应着两个域或两个域是否在同一个 ip 上 URL 的首部 指 window location protocol window location host 也可以理解为 Domains protocols and ports must match 二 解决跨域问题的方法 1 跨域资源共享 CORS 2




一、跨域的类型

前端跨域 jquery 前端跨域问题怎么解决_跨域

特别注意两点:
第一,如果是协议和端口造成的跨域问题“前台”是无能为力的,

第二:在跨域问题上,域仅仅是通过“URL的首部”来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。

“URL的首部”指window.location.protocol + window.location.host,也可以理解为“Domains, protocols and ports must match”。

二、解决跨域问题的方法:

1.跨域资源共享(CORS):
2.通过jsonp跨域

JSONP的原理:通过script标签引入一个js文件,这个js文件载入成功后会执行我们在url参数中指定的函数,并且会把我们需要的json数据作为参数传入。所以jsonp是需要服务器端的页面进行相应的配合的。(

缺点:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

3.通过修改document.domain来跨子域

只适用于 Cookie 和 iframe 窗口,LocalStorage 和 IndexDB 无法通过这种方法

方式一:

A网页是http://w1.example.com/a.html
B网页是http://w2.example.com/b.html
只要设置相同的document.domain,两个网页就可以共享Cookie

方式二:

另外,服务器也可以在设置Cookie的时候,指定Cookie的所属域名为一级域名,比如.example.com。

4.使用window.name来进行跨域
5.使用HTML5的window.postMessage方法跨域(HTML5新API)

这个API为window对象新增了一个window.postMessage方法,允许跨窗口通信,不论这两个窗口是否同源。目前IE8+、FireFox、Chrome、Opera等浏览器都已经支持window.postMessage方法。
A页面:

6.通过WebSocket进行跨域(同源策略对web sockets不适用)

web sockets是一种浏览器的API,它的目标是在一个单独的持久连接上提供全双工、双向通信。(同源策略对web sockets不适用)
web sockets原理:在js创建了web socket之后,会有一个HTTP请求发送到浏览器以发起连接。取得服务器响应后,建立的连接会使用HTTP升级从HTTP协议交换为web sockt协议。

7.图像ping(单向)
8.使用片段识别符来进行跨域


编程小号
上一篇 2025-03-21 15:21
下一篇 2025-03-27 07:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/31096.html