0

我正在尝试从 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 在本地主机上的应用程序中运行。两个调用都设置了相同的标头。

4

1 回答 1

0

这对我来说是一个愚蠢的错误。如果有人这样做,我正在回答这个问题(而不是删除)。

我指的是包含错字的服务:

url: 'http://www.test2.com/api/app/controller',

代替:

url: 'http://www.test.com/api/app/controller',

我的 CORS 飞行前请求正常工作,只是从未到达正确的服务器。

于 2016-06-07T15:29:39.057 回答