我有一个角度应用程序,它向我的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,也会发生这种情况?
答案 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解密,这样你就可以看到响应的内容。