2012-04-11 11 views
5

私は何をしようとしているのか不運でstackoverflowで以下の質問を見てきました。ここでjqueryとajaxで承認ヘッダを送信する

Ajax Authorization Request headers fails again and again

jQuery Ajax Unauthorized 401 Error

Sending credentials with cross-domain posts?

私が現在持っている私のコードです:

$(document).ready(function() { 
     $.ajax({ 
      url: 'http://sample.domain.com/script.php?name1=value1&jsonp=?', 
      type: 'GET', 
      dataType: 'json', 
      contentType: "application/json", 
      beforeSend: function(xhr) { 
       xhr.setRequestHeader("Authentication", "Basic ZnJvbWFwcGx********uOnRoM24zcmQ1UmgzcjM=") //Some characters have been replaced for security but this is a true BASE64 of "username:password" 
      }, 
      success: function(data){ 
       alert(data); 
      } 
     }); 
    }); 


</script> 

私が持っているサブドメインは.htpasswdのファイルで保護されたパスワードです。サイトのログインは、base64エンコードで使用されているユーザー名とパスワードの組み合わせを使用して私にとってうまく動作します。私はJSONPを持っている理由のURLがどの上にあるものとは異なるドメインにこのスクリプトを実行している

イムは=でしょうか? URLに

ブラウザでコンソールから取得した応答イムは、次のとおりです。 GET http://sample.domain.com/script.php?name1=value1&jsonp=jsonp1334177732136 401 (Authorization Required)

+0

あなたはここで基本的な認証を使用しているのはなぜ?あなたのJSはbase64のパスワードを世界に公開するので、セキュリティは提供されません。それとも私はあなたの状況を誤解しましたか? – jimw

+0

正直なところ、すべての方法はHTTP経由では安全ではありません。それがHTTPSが存在する理由です。 – freakish

+0

こちらのセキュリティは問題ではありません。これは私が持っているものの単なるサンプルです。 Iveはこれを基本的なものにして、何かを試してみるようにしました。私は基本的な作業をした後、それを安全にする。 – bretterer

答えて

4

JSONPは、スクリプトタグプロキシを使用しています。カスタムヘッダーはサポートされません。あなたはエンドポイントをコントロールしていますか?もしそうなら、CORSを有効にするか、GET文字列に認証キーを渡してください。

のjQueryをJSONP使用してURLに変換し、 "AJAX" 要求へ:

<script src="[endpoint]"></script> 

それは、ランダム関数に

var json9409d0sf0d9s0df90 = function() { 
    //some callback logic here. 
} 

を書き込み、その後、コールバック= json9409d0sf0d9s0df90

サーバーを追加します?

echo $_GET['callback] . "(" . $json . ")"; 
語ります

とはとても

json9409d0sf0d9s0df90({some: data}); 

は、ブラウザによってexexcuted、それは通常のAJAXコールバックのように対応させるjQueryの魔法のハンドラによって処理される応答としてそれを送り返します。

私の知る限り、<script src=""></script>資産負荷が文句を言わない任意の標準ブラウザでカスタムヘッダーを取ります。

5

ヘッダ名はAuthorizationで、あなたは "Authentication"

例えば、送信されています

認証:基本QWxhZGRpbjpvcGVuIHNlc2FtBmU =

関連する問題