在Azure Web Apps中启用Web API的CORS

时间:2015-07-07 12:06:59

标签: azure asp.net-web-api azure-web-sites

我已将Web API项目部署到 Azure Web应用程序。从angularjs应用程序,我正在尝试对API的$ http.get请求。但它在我的Web API启动配置

中启用了CORS(跨源)异常
 app.UseCors(CorsOptions.AllowAll);

我想为Azure Web App启用CORS,这将解决我认为的问题

修改 http://nearestbuyweb.azurewebsites.net/这是Web应用程序的URL。它正在尝试访问发生异常的http://nearestbuyapi.azurewebsites.net/api/MenuBar

我认为Azure Web App无法实现。 MSDN Question

请帮忙!

5 个答案:

答案 0 :(得分:3)

注意:您使用CORS设置让其他网站访问您网站的API。不访问其他网站的API。

根据您的评论,当您尝试从您的网站发出外部请求时,您听起来像是在收到CORS错误。这正是CORS应该阻止的行为。

如果错误消失,您必须在您尝试访问的API的网站上应用CORS配置设置

在您的情况下,您需要确保在http://nearestbuyapi.azurewebsites.net网站上应用配置更改。不在http://nearestbuyweb.azurewebsites.net/

答案 1 :(得分:2)

<system.webServer>
    <httpProtocol>
        <customHeaders>
            <clear />
            <add name="Access-Control-Allow-Origin" value="*" />
            <add name="Access-Control-Allow-Headers" value="Content-Type" />
            <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
        </customHeaders>
    </httpProtocol>
</system.webServer>

答案 2 :(得分:2)

我在Azure中使用CORS进行CORS:

<强> WebApiConfig.cs:

public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services
        config.EnableCors();

        // Web API routes
        config.MapHttpAttributeRoutes();

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

    }
}

<强>的Web.config:

  <system.webServer>
  <handlers>
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <remove name="OPTIONSVerbHandler" />
      <remove name="TRACEVerbHandler" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers></system.webServer>

答案 3 :(得分:1)

您需要使用web.config删除IIS中的选项处理程序。 http://eugeneagafonov.com/post/38312919044/iis-options-cors-aspnet-webapi-en

答案 4 :(得分:0)

抱歉伙计,

问题只发生在我的公司网络上。谷歌搜索后发现企业网络可以禁用CORS请求。在这里找到link