CORS .net 跨域解决方案

2025-10-03 08:40:27

1、如图:打开IIS,找到 “HTTP响应标头”

CORS .net 跨域解决方案

2、添加如下配置信息:

Access-Control-Allow-Methods : GET,POST,PUT,DELETE,HEAD,OPTIONS

Access-Control-Allow-Origin : * 

Access-Control-Allow-Headers : Content-Type,api_key,Authorization,X-Requested-With

如下图所示:

(注:如是J2EE项目,可在统一URL拦截器中,

 response.setHeader("Access-Control-Allow-Headers", "Content-Type,api_key,Authorization,X-Requested-With");  

    response.setHeader("Access-Control-Allow-Method", "GET,POST,PUT,DELETE,HEAD,OPTIONS");  

response.setHeader("Access-Control-Allow-Origin", "*");  

注response.setHeader("Access-Control-Allow-Origin", "*"); “ *”可替换为只允许的域,如:"http://localhost:8080/*" 

CORS .net 跨域解决方案

3、此时已经解决 GET 请求问题可成功返回数据。

POST请求比较复杂,跨域带参请求时浏览器会先发一个OPTIONS请求(就是这个问题困扰了我两天)

4、解决方法如下:同一个请求需要两个相同请求地址的方法,一个标记为“POST”,另一个标记为“OPTIONS“,实体方法为标记”POST“的方法,这里”OPTIONS“方法不需要做任何逻辑操并且返回值为void即可(其实OPTIONS请求为浏览器的校验,发带参数的POST请求时浏览器会先发一个OPTIONS请求,检验request 头信息和response头信息一致后才真正发起POST请求)。

.net 代码如下图所示:(JAVA同理)

CORS .net 跨域解决方案

5、jquery Ajax请求如下所示:

注意其中的 contentType : 'text/json'data:'json格式的字符串'

CORS .net 跨域解决方案

6、到此 CORS 跨域Ajax请求完全解决。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢