2011-06-29 98 views

回答

47

enable-cors.org

:在ASP.NET

CORS如果您沒有訪問配置IIS,你仍然可以通過ASP.NET中加入下面一行到你的源頁面添加頁眉

參見:配置IIS6/IIS7

+0

+1謝謝,但我需要添加此標題僅用於資源文件例如css&js文件 –

+0

@NitinJS:爲什麼? – dtb

+0

我有一些js文件經常更新,我想在其他域使用它們,但他們不會工作因爲跨域策略 –

1

您需要的是看所請求的資源的HTTP模塊,如果它是一個CSS或JS,就釘在訪問控制允許-Origin包含請求者URL的標頭,除非您希望它以'*'開啓。

4

1.安裝,包裝Microsoft.AspNet.WebApi.Cors

2。將此代碼添加到WebApiConfig.cs中。

public static void Register(HttpConfiguration config) 
    { 
     // Web API configuration and services 

     // Web API routes 

     config.EnableCors(); 


     config.MapHttpAttributeRoutes(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 

3.添加此

using System.Web.Http.Cors; 

4.阿比控制器添加這個代碼(HomeController.cs)

[EnableCors(origins: "*", headers: "*", methods: "*")] 

    public class HomeController:ApiController 

    { 

    [HttpGet] 

    [Route("api/Home/test")] 

    public string test() 
    { 
     return ""; 
    } 
} 
+0

此代碼允許在特定操作方法上使用CORS而不是js文件 –

8

另一種選擇是直接將它添加於在web.config :

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="http://www.yourSite.com" /> 
     <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"/> 
     <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" /> 
     </customHeaders> 
    </httpProtocol> 

... 我發現這在here

相關問題