关于跨域请求的两种方案

cors方式

之前在chrome控制台看到金蝉同一个请求有的时候会发送两个(多出一个OPTION的情况)的情况,有点奇怪,经过一顿研究发现原来这个是 CORS 实现跨域 非简单请求 的处理方式。具体内容参见阮大神的文档跨域资源共享 CORS 详解

jsonp方式

原理

利用<script>标签src不受同源策略限制。

缺点

  • <script>请求的内容会直接执行,那么这就要求接口返回的东西是浏览器可执行的,目前的实现方式都是把结果包装成callback(reslut)这种模式,但是这样对后台代码带来侵入。
  • 同时由于H5提出的<script>标签onError事件在各个浏览器的不支持,所以使得这种跨域方式的错误(如:500、404...)基本没法处理。

总结

综上,在能够使用cors的情况尽量不使用jsonp方式。

posted @ 2019-03-12 17:37  Cwift  阅读(344)  评论(2)    收藏  举报