2016-12-11 12 views
0

を追加する:失敗は、私はAuthorizationヘッダーを持つHTTPリクエストを生成しようとしているHTTPヘッダー

$.ajax({ 
      type: 'GET', 
      url: "https://subdomain.domain.com/login", 
      beforeSend: function (xhr) { 
       xhr.setRequestHeader ("Authorization", "Basic " + btoa('username' + ":" + 'password')); 
      }}) 

しかし、このコードによって生成の要求がAuthorizationヘッダーが含まれていません:

OPTIONS /ログインHTTP/1.1

ホスト:subdomain.domain.com

接続:キープアライブ

プラグマ:キャッシュなし

のCache-Control:キャッシュなし

アクセス制御リクエスト・メソッド:GET

原産地:http://localhost:3021

のUser-Agent:Mozillaの/ 5.0(X11; Linuxのx86_64で)のAppleWebKit/537.36(KHTML、ヤモリのような )クローム/ 12.3.4567.890サファリ/ 537.36

アクセス制御リクエスト・ヘッダ:許可

受け入れ:/

リファラー:http://localhost:3021/app.html

のAccept-エンコーディング:gzipでは、

BR、SDCH、収縮のAccept-言語:EN-US、EN; Q = 0.8、彼; Q = 0.6

私は間違っていますか?

+0

AJAXリクエストのsyntextに 'headers'キーを使ってみましたか? –

+0

@ShalinPatelいいえ、どういう意味ですか?あなたは私に例を挙げてくれますか? – Alon

+0

のように 'headers:{" Authorization ":" Basic "+ btoa( 'username' +": "+"パスワード ')} ' –

答えて

0

問題は、CORSが許可されていないサーバーでドメイン間要求を作成しようとしたことです。

したがって、私が見たリクエストは、OPTIONSメソッドを使用したプリフライトリクエストでした。このプリフライトリクエストで適切な応答CORSヘッダーを取得した場合は、実際のリクエストでAuthorizationヘッダーが表示されます。しかし、私はプリフライトOPTIONSリクエストを渡さなかったので、実際のリクエストはなかったので、Authorizationヘッダーが表示されませんでした。

ブラウザではなくNode.jsを使用してAPIを使用して解決しました。

0

これは問題を解決する可能性があります。

$.ajax({ 
    type: 'GET', 
    url: "https://subdomain.domain.com/login", 
    headers : { 
       "Authorization" : "Basic " + btoa('username' + ":" + 'password') 
    } 
}) 
関連する問題