解决webapi跨域问题

.Net技术 码拜 7年前 (2017-04-29) 1704次浏览
对webapi跨域之前没有什么接触过,前端使用ajax请求。
网上搜罗一下,有那么几种方法,
1.使用Microsoft.AspNet.WebApi.Cors
2.配置<system.webServer>节点。
<httpProtocol>
<customHeaders>
<add name=”Access-Control-Allow-Origin” value=”*” />
<add name=”Access-Control-Allow-Headers” value=”*” />
<add name=”Access-Control-Allow-Methods” value=”GET, POST, PUT, DELETE, OPTIONS” />
</customHeaders>
</httpProtocol>
客户端设置jquery.support.cors=true
第一种原因是项目是.net4.0的,版本不支持,所以没用到。第二种方法似乎没起什么作用,不知道高手有何建议能把跨域的问题处理一下?
解决方案

160

表示实际的确成功的跨域了,所以不知道你问题在哪……
当第二种时,本人记得并不需要jquery的那个设置

20

ajax 不允许跨域,是出于对用户隐私的保护(原因是收到的数据不能直接被用户观察到,不能判断出能否有威胁)
服务器开放 cookie 为全社会的,就使 cookie 失去了保存用户隐私的作用
虽然你找到的方法都是可行的(需要中高版本的浏览器支持),但并不是妥当的
建议你还是用 jsonp 方式传递数据

5

本人就是第二种方式,
这样的确就跨域了,之前项目都这么干的

10

json格式有问题,表示通道是通的(也就是你跨域请求是成功的)
只是返回的数据不能当作 json 解析
你可暂且将 datatype: “json”, 注释掉,看看实际返回的是什么
当然 alert(data.Code); 要改成 alert(data); ,这你知道的

5

引用:
Quote: 引用:

本人就是第二种方式,
这样的确就跨域了,之前项目都这么干的

你都作了哪些配置呢?

配置和你一样的。你用chrom浏览器调试依稀,查看返回状态和数据


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明解决webapi跨域问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)