別のドメインで 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
});
CORSリクエストを処理するためにWeb APIが正しくセットアップされていると思います。Chrome Advanced REST クライアントを使用して CORS OPTIONS リクエストを行うと、正しいヘッダーと 200 レスポンス コードが返されます。
上記の POST 呼び出しを行うと、プリフライト OPTIONS リクエストが行われます。これは常に 504 コードでタイムアウトします。Application_BeginRequest のロギングはヒットしません (Chrome プラグインから呼び出す場合)。
AngularJS からの呼び出しと Chrome プラグインからの呼び出しの違いは何ですか? どちらも同じマシンから実行されており、AngularJS は localhost のアプリケーションで実行されています。両方の呼び出しで同じヘッダーが設定されています。