2015-02-24 20 views
0

我在ASP.NET Web API項目中啓用了CORS。目前,它僅允許通過我的客戶端應用程序訪問,如下所示:CORS方法參數似乎不起作用?

[EnableCorsAttribute("http://localhost:44051", "*","post")] 
public class ProductsController : ApiController 

但是,這也允許GET請求。我認爲通過指定「post」作爲最後一個參數,只有POST請求可以被允許交叉。

任何想法這裏有什麼問題嗎?

+0

只是一個猜測,但也許因爲你從不同來源不是CORS政策不適用於你? – JasonCoder 2015-02-24 21:12:00

+0

如果我脫掉屬性,就會出現「No Access-Control-Allow-Origin header is present」錯誤。所以我認爲CORS策略是適用的。 – DeborahK 2015-02-25 16:01:22

+0

你正在使用瀏覽器,郵遞員擴展程序或像Fiddler這樣的工具進行測試嗎?也許與各種客戶進行測試,看看你是否看到不同的東西。你的客戶端也在localhost上:44051? – JasonCoder 2015-02-25 16:29:50

回答

0

爲使所有域

  1. [EnableCors(起源: 「」,標頭: 「」,方法: 「*」)]

設置允許的HTTP方法

[EnableCors]屬性的methods參數指定允許哪些HTTP方法訪問資源。要允許所有方法,請使用通配符值「*」。以下示例僅允許GET和POST請求。

[EnableCors(origins: "http://www.example.com", headers: "*", methods: "get,post")] 
public class TestController : ApiController 
{ 
    public HttpResponseMessage Get() { ... } 
    public HttpResponseMessage Post() { ... } 
    public HttpResponseMessage Put() { ... }  
} 

http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

+0

這是直接從文檔。我不明白這是如何回答我的問題。我正在使用記錄的屬性並指定「post」。由於此屬性「指定允許哪個HTTP方法」...因此我的客戶端應用程序不應該能夠訪問我的示例中的GET。但它可以。我的榜樣是否適合你? – DeborahK 2015-02-26 14:57:25