ajax跨域(跨源)方案之CORS

ajax跨域(跨源)方案:后端授权[CORS],jsonp,服务端代理

  CORS是一个W3C标准,全称是"跨域资源共享",它允许浏览器向跨源的后端服务器发出ajax请求,从而克服了AJAX只能同源使用的限制。
  实现CORS主要依靠<mark>后端服务器中响应数据中设置响应头信息返回</mark>的。

  

response = new Response()
response .set_header("Access-Control-Allow-Origin","http://localhost:63342")
return response;

  

// 在响应行信息里面设置以下内容:
Access-Control-Allow-Origin: ajax所在的域名地址
Access-Control-Allow-Origin: www.oldboy.cn  // 表示只允许www.oldboy.cn域名的客户端的ajax跨域访问
// * 表示任意源,表示允许任意源下的客户端的ajax都可以访问当前服务端信息
Access-Control-Allow-Origin: *

  

总结:

0. 同源策略:浏览器的一种保护用户数据的一种安全机制。
   浏览器会限制ajax不能跨源访问其他源的数据地址。
   同源:判断两个通信的地址之间,是否协议,域名[IP],端口一致。
   
   ajax:  http://127.0.0.1/index.html
   api数据接口:  http://localhost/index
   
   这两个是同源么?不是同源的。是否同源的判断依据不会根据电脑来判断,而是通过协议、域名、端口的字符串是否来判断。
   
1. ajax默认情况下会受到同源策略的影响,一旦受到影响会报错误如下:
     No 'Access-Control-Allow-Origin' header is present on the requested resource

2. 解决ajax只能同源访问数据接口的方式:
   1. CORS,跨域资源共享,在服务端的响应行中设置:
      Access-Control-Allow-Origin: 允许访问的域名地址
   2. jsonp
   3. 是否服务端代理

  

posted @ 2021-10-01 21:12  映辉  阅读(318)  评论(0)    收藏  举报