我遇到了无法解决的问题。
我有一些 js (jquery) POST Soap(通过 PHP)请求代码在 Apache 上工作,启用了 Cors 来调用 HTTPS,并且工作正常。
我已迁移到 IIS7,设置响应 header :
Access-Control-Allow-Origin = *
Access-Control-Allow-Methods = POST`
现在发送时很奇怪
Content-Type: text/xml;
被拒绝,但发送默认时
application/x-www-form-urlencoded
奇怪的是我得到了响应(当然是来自 Soap 服务器的错误响应,但仍然意味着 Cors 可以用于此)。
所以问题是,iis headers 中是否还需要设置其他内容?我尝试了一天的时间来寻找答案,但没有成功。我的猜测是它与Access-Control-Allow-Headers
有关,但我仍然找不到有效的示例。
最佳答案
您需要设置以下 header :
Access-Control-Allow-Headers: Content-Type
您可能还需要将其他 header 放入该列表中。确定要添加哪些 header 的最佳方法是检查请求上的 Access-Control-Request-Headers header ,并查看其要求的值,然后在上面的响应中回显这些值。
Content-Type 需要包含在此 header 中的原因是因为您要求非标准值(“application/x-www-form-urlencoded”是标准值)。
关于javascript - IIS 7 Cors Ajax Soap 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10043294/