3

jQuery AJAXリクエストをいくつかの基本的なhttp認証済みURLに作成しようとしています。ここ は私のjQueryのコードです:jQuery ajax基本認証が機能していません

jQuery.ajax({ 
    url: "https://abc.com/houses/1/appliance_hints", 
    method: 'GET', 
    cache: false, 
    crossDomain: true, 
    beforeSend: function(xhr){ 
    xhr.setRequestHeader('Authorization', 'Basic Z3NsYWI6cGFzczFnczFhYg=='); 
    }, 
    success: function(result){ 
    alert(result); 
    } 
}); 

私はここにリクエストヘッダ「認証」を設定しています。しかし、ここにFFでのリクエストヘッダーに表示されているものがあります

Host <host> 
User-Agent Mozilla/5.0 (Ubuntu; X11; Linux x86_64; rv:8.0) Gecko/20100101 Firefox/8.0 
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language en-us,en;q=0.5 
Accept-Encoding gzip, deflate 
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Connection keep-alive 
Origin <origin> 
Access-Control-Request-Me... GET 
Access-Control-Request-He... authorization,x-requested-with 

私は間違って何をしていますか? 応答にステータスコード302が表示されています。 サーバー側の構成エラーはありますか?

答えて

3

$.ajaxコールにcrossDomain: trueを追加したことに気づいたので、リモートドメインから何かを取得しようとしていますか?

いずれにせよ、主な問題は、Same origin policyに違反していることです。

remote_url(あなたの例ではabc.com)を制御できる場合は、これらの呼び出しを許可するヘッダーを送信するように設定できます。

例:

Access-Control-Allow-Origin: http://permitted_domain.com 

PHP例:

header('Access-Control-Allow-Origin: http://permitted_domain.com'); 
// or to allow all 
header('Access-Control-Allow-Origin: *'); 
0
var settings = { 
    "async": true, 
    "crossDomain": true, 
    "url": "YOUGETURL", 
    "method": "GET", 
    "headers": { 
    "authorization": "Basic Z3NsYWI6cGFzczFnczFhYg==", 
    "cache-control": "no-cache" 

    } 
} 

$.ajax(settings).done(function (response) { 
    console.log(response); 
}); 
関連する問題