关于跨域请求的两种方案

Posted learningchencheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于跨域请求的两种方案相关的知识,希望对你有一定的参考价值。

cors方式

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

jsonp方式

原理

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

缺点

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

总结

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

以上是关于关于跨域请求的两种方案的主要内容,如果未能解决你的问题,请参考以下文章

跨域请求的两种实现方式

Ajax跨域问题的两种解决方法

ASP.NET MVC 实现AJAX跨域请求的两种方法

post跨域请求剖析

ajax 跨域请求

如何跨域访问的两种方法~