Ajax跨域调用webService报错

某某猫 2017-07-07 02:25:54
webService是放在服务器A上的,而调用webService的ajax代码是放在服务器B上的。
按照在网上查的在web.config中做了配置

<system.web>
<webServices>
<protocols>
<add name="HttpSoap"/>
<add name="HttpPost"/>
<add name="HttpGet"/>
<add name="Documentation"/>
</protocols>
</webServices>

<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" />
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET" />
<add name="Access-Control-Allow-Headers" value="x-requested-with,content-type" />
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>

然而只有当html直接访问才能成功,一旦把html部署之后再访问就显示没有权限。错误如下图所示:

对这两种方式的request headers做了对比,发现他们之间的区别在于部署之后的request里多了一个referer属性

不知道现在有什么好的办法可以解决。
ajax调用代码如下:
[code=javascript][/
$.ajax({
url: 'https://XXX.com/xxx.asmx/GetMerchant',
type: 'POST',
data: "{'merchantName':'XXX'}",
dataType: 'JSON',
contentType: "application/json",
success: function (res) {
console.log(res);
},
error: function (data) {
console.log(data);
}
});
code]
...全文
270 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rayyu1989 2017-07-11
  • 打赏
  • 举报
回复
引用 4 楼 u011139317 的回复:
解决了,虽然觉得有点无厘头。我之前除了在web.config中配置之外,还在webService的代码里加了一句 Context.Response.AddHeader("Access-Control-Allow-Origin","*"); 删掉之后从新部署就可以了
Access-Control-Allow-Origin只能配置1次 不能多次输出 多次输出会被认为是非法的
某某猫 2017-07-07
  • 打赏
  • 举报
回复
解决了,虽然觉得有点无厘头。我之前除了在web.config中配置之外,还在webService的代码里加了一句 Context.Response.AddHeader("Access-Control-Allow-Origin","*"); 删掉之后从新部署就可以了
rayyu1989 2017-07-07
  • 打赏
  • 举报
回复
header输出 xhr协议头 协议头关键词 Access-Control-Allow-Origin 如果需要传递cookie 协议头 Access-Control-Allow-Credentials 设置为true 并且 origin不能为*
某某猫 2017-07-07
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
你webservice可能是需要验证信息的,你把验证信息放在url上再调用试试
我已经把验证去掉了,如果还要验证的话,html没部署在IIS上之间访问的时候不应该能得到值啊
shoppo0505 2017-07-07
  • 打赏
  • 举报
回复
你webservice可能是需要验证信息的,你把验证信息放在url上再调用试试

12,162

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧