【发布时间】:2019-10-02 16:44:57
【问题描述】:
iam 有一个 web 应用程序(用一些 jquery 用 php/codeigniter 编写),并且 iam 试图通过 Ajax 请求从 AspNet web 服务获取数据。
处理请求的 JQuery 代码如下所示:
$.ajax({
url: webServiceURL,
type: "POST",
dataType: "xml",
data: soapMessage,
contentType: "text/xml; charset=\"utf-8\"",
success: (response)=>{
//process response
});
},
error: (error)=>{
console.log(error);
}
});
}
问题是,它被 CORS 阻止了。我把它弄乱了一点,现在我得到了这个错误(在我没有发送正确的原始标头之前,现在我发送 *):
选项http://10.208.1.27/planws/Service.asmx 403(禁止)
从源“http://localhost”访问位于“http://10.208.1.27/planws/Service.asmx”的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。
即使我在服务器上配置 IIS 以响应“Access-Control-Allow-Origin:*”标头,我也会收到此错误。我还应该怎么做才能让它发挥作用?
Chrome 开发者工具/网络中的响应标头如下所示:
访问控制允许来源:*
当我在禁用网络安全的情况下运行 chrome 时,它运行得很好。
【问题讨论】:
-
您应该在后端代码中添加一个标头。
-
@RadonirinaMaminiaina 不,这无济于事;它是 response 标头,而不是请求标头。 OP 应该使用浏览器的“网络”选项卡来查看正在返回的标题;从错误来看,您似乎错误地配置了服务器。
-
@sarvon ks- 这没有帮助,我没有使用 Web api,我正在使用 Web 服务,并且工作方式略有不同
标签: javascript jquery asp.net iis cors