Skip to content

跨域

出现跨域的原因

浏览器出于安全考虑,有同源策略。也就是说,如果协议、域名或者端口有一个不同就是跨域,Ajax 请求会失败。

解决方法

  1. JSONP

原理:

1. `script`标签没有跨域限制
2. 设置一个预设回调函数
3. 请求结果(`js`内容)将实际结果作为参数传入预设回调函数,并调用
4. 回调函数接收到了实际请求结果

存在的问题:

1. 仅限于`get`请求
2. 需要后台配合解析和传回匹配回调函数的请求结果
  1. cors

原理:

1. 在跨域时,浏览器会自动发送跨域请求预校验,后台配置有cors跨域资源共享时,请求直接成功

存在的问题:

1. 多出一个预校验请求:`option`