ajax跨域(跨源)方案之CORS

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

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

  

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

  

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

  

总结:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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 @   映辉  阅读(308)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示