跨域学习

233 阅读1分钟

1、为什么会出现跨域问题?

答:浏览器的同源策略限制,浏览器会拒绝跨域请求。a链接跳转

2、什么才叫做跨域?

非同源请求,均为跨域。同源指的是相同的主机、端口、协议。

3、跨域的解决方法

a、JSONP  实现需要前后端配合

优点:兼容好,兼容ie低版本;

缺点:只支持GET请求,XMLHttpRequest相对于JSONP有更好的错误处理机制

b、CORS  W3C推荐的一种新方案,能使服务器支持XMLHttpRequest跨域请求。

异步请求分为简单请求和非简单请求

简单请求:

仅当POST方法的Content-Type值等于下列之一才算作简单请求 

 - text/plain 

 - multipart/form-data 

 - application/x-www-form-urlencoded

非简单的请求

1/使用了下面任一 HTTP 方法:

  • PUT
  • DELETE
  • CONNECT
  • OPTIONS
  • TRACE
  • PATCH
c、postMessage

用来向其他window对象发送信息

otherWindow.postMessage(message, targetOrigin, [transfer]);

参考:juejin.cn/post/684490…