我正在尝试从 AngularJS 向不同域的 WebAPI 发出发布请求。
$http({
method: 'POST',
url: 'http://www.test.com/api/app/controller',
data: postdata,
headers: {
'Content-Type': 'application/json'
}
})
.then(function(response) {
// Do stuff
}, function() {
// Show error
})
.finally(function() {
// Cancel loading indicator
});
我相信 Web API 已正确设置以处理 CORS 请求。如果我使用 Chrome Advanced REST 客户端发出 CORS OPTIONS 请求,则会返回正确的标头和 200 响应代码。
当我在上面进行 POST 调用时,会发出一个预检 OPTIONS 请求。这总是以 504 代码超时。我的 Application_BeginRequest 中的日志记录永远不会被命中(从 Chrome 插件调用时)。
从 AngularJS 和 Chrome 插件调用有什么区别?两者都在同一台机器上运行,AngularJS 在本地主机上的应用程序中运行。两个调用都设置了相同的标头。