2

クロス ドメイン リクエストを作成しようとしています。それを行うには、http ヘッダーを設定する必要があります。

$.ajax({
                type: 'GET',
                url: 'api',
                beforeSend: function (request)
                {
                    request.setRequestHeader('authorization', 'Basic ...==');
                },
                success: function(data) {
                    debugger;
                }
            });

beforeSendメソッドが呼び出されたようですが、' authorization ' ヘッダーが設定されていません。これを理解するのを手伝ってもらえますか?

更新:受信した CORS ヘッダーは次のとおりです。

Access-Control-Allow-Origin : localhost
Access-Control-Allow-Credential: true
Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS

Access-Control-Allow-Headersが欠落しているようです。

4

1 に答える 1

2

AuthorizationAPI が CORS をサポートしていること、およびそれが設定できる要求ヘッダーであることを確認してください。OPTIONS リクエストをエンドポイントに送信すると、API は次のレスポンス ヘッダーで応答する必要があります。

Access-Control-Allow-Headers:X-Requested-With, Content-Type, Authorization
Access-Control-Allow-Methods:GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:*

これにより、クライアントは、API メソッドを呼び出すときにX-Requested-WithContent-Typeおよびリクエスト ヘッダーを設定できるようになり、任意のオリジン ドメインからの動詞、動詞、動詞が許可されます。AuthorizationGETPOSTPUTDELETEOPTIONS

したがって、問題をデバッグするには、まずOPTIONSAPI エンドポイントにリクエストを送信し、レスポンスの HTTP ヘッダーを観察します。

于 2013-10-07T11:06:15.403 に答える