我已将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
请帮忙!
答案 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