AngularJS 对 Web API 的 OPTIONS 请求丢失

AngularJS OPTIONS request to Web API lost

我正在尝试从 AngularJS 向不同域上的 WebAPI 发出 post 请求。

$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 高级 REST 客户端发出 CORS OPTIONS 请求,则会返回正确的 headers 和 200 响应代码。

当我进行上面的 POST 调用时,会发出预检 OPTIONS 请求。这总是以 504 代码超时。我的 Application_BeginRequest 中的日志记录从未被命中(从 Chrome 插件调用时是这样)。

从 AngularJS 和 Chrome 插件调用有什么区别?两者都来自同一台机器 运行 并且 AngularJS 在本地主机上的应用程序中 运行ning。两次调用中都设置了相同的 headers。

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

我指的是包含拼写错误的服务:

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

而不是:

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

我的 CORS 飞行前请求没有问题,只是从未到达正确的服务器。