2011-06-29 62 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

相关问题