0

次のように ajax 呼び出しを作成しています。

beforeSend: function(xhr) { 
    xhr.setRequestHeader("Authorization", make_base_auth(username, password)); 
},

結果の HTTP 要求ヘッダーには、

Access-Control-Request-Headers: authorization

ブラウザから直接同じリクエストを発行すると、リクエストヘッダーに正しく含まれています

Authorization: Basic ZG<etc>

JQuery ルーチンを見ると、jquery-1.20.2setRequestHeaderヘッダー名と値のペアをキャッシュされたヘッダーのリストに正しく追加しています。

認証が失敗した結果、AJAX 呼び出しでエラーがスローされます。(ZGetetcetc は、成功した手動試行で見たものと一致します)

4

1 に答える 1

2

これが実行可能なオプションであるかどうかはわかりません。jQuery をアップグレードします。

新しい jQuery には、基本認証のユーザー名とパスワードを ajax 呼び出しの一部として渡す機能があります。

$.ajax
({
  type: "GET",
  url: "index.php",
  dataType: 'json',
  async: false,
  username: "YOUR-USERNAME-HERE",
  password: "YOUR-PASSWORD-HERE",
  data: '{ "DATA-HERE" }',
  success: function (data) {
     // handle success data
  }
});

ソース: http://api.jquery.com/jQuery.ajax/


別のオプション:

beforeSend: function (xhr) {
    xhr.setRequestHeader ("Authorization", "Basic "+ Base64.encode(username +':'+ password));
},
于 2013-10-24T13:25:43.117 に答える