【发布时间】:2014-09-02 16:59:26
【问题描述】:
在过去的两天里,我一直在努力处理 webapi (asp.net) 和 ajax 查询。我可能已经阅读了互联网上所有可能的解决方案,但它仍然无法在我的机器上运行。
我已经尝试过简单示例项目的步骤(注意:localhost 替换为 LH):
-
[不工作]
public static void Register(HttpConfiguration config) { config.EnableCors(new EnableCorsAttribute("*", "*", "*")); // omitted } -
[不工作]
[EnableCors("*", "*", "GET,POST,PUT,OPTIONS")] public class ValuesController : ApiController { /* code goes here */} -
[不工作]
[EnableCors("*","*","PUT")] public void Put(int id, string value) { values[id] = value; } -
[不工作]
我也尝试过添加这些:<httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> </customHeaders> </httpProtocol> [不工作]
最后,我使用 IIS 管理做了与第 4 点相同的操作。
FF F12 工具网络面板的结果:
GET LH:8821/api/values 200 OK 229ms ["Item1", "Item2", "Item3"]
PUT LH:8821/api/values 405 Method Not Allowed 114ms "NetworkError: 405 Method Not Allowed - LH:8821/api/values"
POST LH:8821/api/values 405 Method Not Allowed 123ms "NetworkError: 405 Method Not Allowed - LH:8821/api/values"
是我做错了什么,还是我错过了一些其他设置?
我取得的最佳结果是 GET 和 POST 工作,但是当涉及到 PUT 时,我总是得到 405 - 为什么?
【问题讨论】:
标签: asp.net ajax asp.net-web-api cors