2013-04-23 20 views
6

Apache preemtive基本認証で実行されているいくつかのRESTfulサービスに到達しようとしています。私はjquery Ajaxを使用していて、 'Authentication'ヘッダーでユーザーとパスワードを送信しています。 しかし、私の要求は、実行するたびに空のエラーを投げています。jquery ajax&preemptive basic auth

$.ajax({ 
     cache:false, 
     url: urladdress, 
     type:'GET', 
     async:false, 
     headers: { "cache-control": "no-cache" }, 
     dataType: "html", //or xml or json 
     contentType: "html", 
     beforeSend : function(req) 
     { 
      req.setRequestHeader('Authorization', "Basic " + base64string); //user:password); 
     }, 
     success: function(data){ 
     successcallback(data); 
     }, 
     error: function(xhRequest, ErrorText, thrownError){ 
      alert("ERROR: "+ JSON.stringify(xhRequest)); 
     }, 
     complete: function(result){ 
     ... 
     } 
}); 

私が間違っているのか:ここで

は完全な$アヤックス呼び出しているのですか?ここで私が無視していることはありますか?ありがとう。

+0

更新:\t $ ajaxパラメータを変更しました。今私はusername:とpassword:引数で自分の信任状を渡しています。エラーが表示されます: "制限されたURIへのアクセスが拒否されました"クロスドメインの問題のように聞こえますか? –

+0

はい、「制限されたURIへのアクセスが拒否されました」と表示される場合は、クロスドメインの問題です。このためにJSONPを使用する必要があります –

+0

悲しいことに、サービスを呼び出すためにPHPプロキシを使用するつもりです。簡単なJavaScriptでそれを越える方法はないようです。 –

答えて

1

解決策はサーバー側にあります。クロスドメイン作業に対応するためにカスタムヘッダーを含める必要があります。実験は反応して、次のヘッダーを送信:

アクセス制御 - 許可 - 起源:*カスタムヘッダーを使用する場合には

  • :yourApiDomain

    アクセス制御-メソッド許可

    アクセス制御 - 露光 - ヘッダ:X-マイカスタムヘッダー、X-別-クスト:X-マイカスタムヘッダー、X-別-カスタムヘッダー

    アクセス制御-ヘッダを許可M-ヘッダ

  • HTTPクッキーやHTTP認証情報を用いる場合:

    アクセス制御 - 許可 - 資格:詳細情報については真

MDN about CORSでドキュメントを読む:

関連する問題