美文网首页
跨域请求

跨域请求

作者: 与蟒唯舞 | 来源:发表于2018-01-26 16:15 被阅读59次
同源策略

要理解跨域,就要了解“同源策略”。所谓同源是指,协议,域名,端口号相同。所谓“同源策略“,简单来说就是基于安全考虑,当前域不允许调用其他域的内容。

跨域

注意:localhost127.0.0.1 虽然都指向本机,但也属于跨域。

解决方法
  • JSONP
    <img>src(获取图片),<link>href(获取 css),<script>src(获取 javascript)这三个都不符合同源策略,它们可以跨域获取数据。JSONP 就是利用 <script>src 来实现跨域获取数据的。注意 JSONP 只支持 GET 请求,不支持 POST 请求。

  • 代理
    例如 www.beijing.com/index.html 需要调用 www.shanghai.com/server.php,可以写一个接口 www.beijing.com/server.php,由这个接口在后端去调用 www.shanghai.com/server.php 并拿到返回值,然后再返回给 index.html,这就是一个代理的模式。相当于绕过了浏览器端,自然就不存在跨域问题。

  • XHR2
    在服务器端做一些小小的改造即可:
    header('Access-Control-Allow-Origin:*'); //允许所有来源访问
    header('Access-Control-Allow-Method:POST,GET'); //允许访问的方式

  • WebSocket
    WebSocket 是一种通信协议,使用 ws://(非加密)和 wss://(加密)作为协议前缀。该协议不实行同源政策,只要服务器支持,就可以通过它进行跨源通信。

  • CORS
    CORS 是跨源资源分享(Cross-Origin Resource Sharing)的缩写。它是 W3C 标准,跨源 AJAX 请求的根本解决方法。相比 JSONP 只能发 GET 请求,CORS 允许任何类型的请求。

参考链接:

  1. http://www.ruanyifeng.com/blog/2016/04/same-origin-policy.html
  2. http://www.ruanyifeng.com/blog/2016/04/cors.html

相关文章

  • AJAX出现两次请求 options和get|post

    跨域请求 允许跨域请求 preflighted request预请求(options) 跨域请求 XMLHttpR...

  • axios发送俩次请求的原因

    其实跨域分为简单跨域请求和复杂跨域请求 简单跨域请求是不会发送options请求的 复杂跨域请求会发送一个预检请求...

  • 用express实现CORS跨域

    跨域请求头 cors express 跨域请求

  • 跨域

    1、跨域是什么 域指的是域名,向一个域发送请求,如果请求的域和当前域是不同域,就叫跨域;不同域之间的请求就叫跨域请...

  • 跨域

    ??JSONP只能解决GET请求跨域,不能解决POST请求跨域问题,XHR2可以解决GET,POST方式的请求跨域...

  • axios 跨域请求(前后端分离)

    与其说是 axios 跨域请求,我觉得不如说是 webpack server 跨域请求,因为这里的跨域请求实现,还...

  • Http访问跨域解决

    一、跨域科普 跨域,即跨站HTTP请求(Cross-site HTTP request),指发起请求的资源所在域不...

  • 跨域

    什么是跨域? 为什么会发生ajax跨域?浏览器限制跨域【发出的请求不是本域】XHR请求【json】 解决思路:1:...

  • JSONP跨域请求的小尝试

    众所周知,为了安全性考虑浏览器是不支持跨域请求的,哪些请求是跨域请求?什么是跨域请求总之,同源是指 协议、域名、端...

  • Provisional headers are shown ||

    问题出在了跨域上 跨域请求出了问题

网友评论

      本文标题:跨域请求

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