在Azure Service Fabric Web Api中启用CORS

时间:2016-12-07 13:50:41

标签: angularjs azure asp.net-web-api microservices azure-service-fabric

我有一个角度应用程序,它向我的Service Fabric Web API(部署在Secure Service Fabric集群上)发送http请求,如下所示:

    $scope.request_headers = {
            "Content-Type": "application/xml; charset=utf-8",
            "Access-Control-Allow-Origin":"*"
        }
    $http({
                url: "Service_Fabric_web_api_url",
                method: "GET",
                headers:$scope.request_headers
            }).
            then(function (result) {
                console.log(result);
            });

我也在我的web api启动类中全局启用了CORS,如下所示:

HttpConfiguration config = new HttpConfiguration();
var cors = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(cors);

当我在本地运行我的角度应用程序并尝试发送http请求时,我仍然会收到此错误:

XMLHttpRequest cannot load Service_Fabric_web_api_url. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:xxxxx' is therefore not allowed access. The response had HTTP status code 500.

我可以使用相同的网址直接从我的浏览器访问我的服务。

此外,当我尝试在不安全的Service Fabric Cluster上部署Web Api时,相同的http请求也会起作用,并在启动类中添加相同的行以启用CORS。

为什么即使我在我的Web API中全局启用了CORS,特别是在安全群集上启用了CORS,也会发生这种情况?

2 个答案:

答案 0 :(得分:2)

在你的// Controller $form = $this->createForm(YourType::class, $yourObject); // Get all parameters related to the form $data = $request->request->get($form->getName()); // Output 'someValue' echo $data['someValue']; 课程中,你有这条线吗? :

Startup.cs

还有一些与Cors关联的NuGet包:

 public void ConfigureAuth(IAppBuilder app)
 {
     app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
 }

答案 1 :(得分:1)

CORS消息是一个红色的鲱鱼。如果您查看错误消息的结尾,您会看到:

  

响应的HTTP状态代码为500。

通常,响应将包含有关错误的一些详细信息。我建议使用像Fiddler这样的工具,启用HTTPS解密,这样你就可以看到响应的内容。