HTTP 基本認証を使用する Web サービスに対してクロス オリジン リクエストを行うにはどうすればよいですか?
クライアントは jQuery で開発されており、RESTful/JSON Web サービスは変更されているため、「クロスオリジン」ヘッダーが返されます。
クライアントコード:
$.ajax({
url: "http://localhost:3000/applications", // external service
async: false,
beforeSend: function (req) {
req.setRequestHeader("Authorization", "Basic "+ base64_value)
},
success: function (applications) { $.each(applications, function(i, app) {
list.push(app)
})}
})
クライアント コードは、OPTIONS と GET リクエストの両方をトリガーします (Chrome の場合)。OPTIONS リクエストは 401 で失敗します。
GET リクエストにはどのヘッダーを使用する必要があり、OPTIONS リクエストにはどのヘッダーを使用する必要がありますか? また、GET および OPTIONS にはどのサーバー応答ヘッダーを使用する必要がありますか?
cURL とまったく同じ承認ヘッダーを使用してサービスにリクエストを行いましたが、これは機能しました (つまり、JavaScript コードと同じユーザー名/パスワード)。したがって、これはヘッダーと OPTIONS メソッドに関連していると思います。