2017-11-21 16 views
1

AJAXリクエストを使用してAPIに接続しようとしていますが、応答はありません。私のヘッダーに問題があるのか​​、それとも何か他のものにかかわらず、コンソールでエラーが表示されないとデバッグするのは難しいです。AJAXリクエストを使用したAPIからの応答がありません

これは私のAJAX要求である:このAPIから

$.ajax({ 
     url: 'https://api.partners.bazoeka.com/latest/api/postcodecheck?&format=json', 
     method: 'GET', 
     crossDomain: true, 
     beforeSend: function (xhr) { 
     xhr.setRequestHeader('username:myUsername', 'password:myPassword','apikey:apiKey');     
    } 

    }).done(function() { 
     console.log("connected!"); 
     //do stuff 
     }); 

ドキュメントはほとんど情報を提供しています。

Authentication is done by passing the username, password and API key in the header of the HTTP(S) request. For all functions authorization is required. So to be able to do a successful call you have to pass a username, password and an API key

私は私の資格情報が正しい知っている、要求はcURLので正常に動作します:

curl -H"username:myUsername" -H"password:myPassword" -H "apikey:apiKey" "https://api.partners.bazoeka.com/latest/api/postcodecheck?&format=json&postcode=1010AA&housenr=1" 

私のAJAXリクエストのヘッダーに問題はありますか? jQueryのドキュメントによると https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader

答えて

2

xhr.setRequestHeader()は、あなたが複数のヘッダを追加したい場合は、各ヘッダのxhr.setRequestHeader()

beforeSend: function (xhr) { 
    xhr.setRequestHeader('username', 'MyUsername'); 
    xhr.setRequestHeader('password', 'MyPassword'); 
    xhr.setRequestHeader('apikey', 'apikey'); 
} 

参照ドキュメントを追加しようとすると、キーと値を受け入れる必要がありますbeforeSendのコールバック関数がfalseを返す場合、ajaxリクエストは実行されません。 私は、setRequestHeaderは2つの引数、ヘッダ名とヘッダ値を必要とすると思います。 あなたのような各ヘッダーのsetRequestHeaderへの呼び出しを試みることができる:あなたのAJAX設定にオブジェクトとして追加ヘッダ渡し、さらに良い

xhr.setRequestHeader('username', 'myUsername'); 
xhr.setRequestHeader('password','myPassword'); 
xhr.setRequestHeader('apikey' , 'apiKey'); 

... 
headers: { 
username: 'myUsername', 
password: 'myPassword', 
apikey: 'apikey 
}, 
... 
+0

ありがとう、これはしかし、解決策になるかもしれませんプリフライト要求に対する応答がアクセス制御チェックを通過しない:要求されたリソースに 'Access-Control-Allow-Origin'ヘッダーが存在しません。したがって、http:// localhostはアクセスが許可されません。応答にHTTPステータスコード500._ –

+1

がありますこれはCORSルールです。つまり、リモートホストがあなたを受け入れていないことを意味します。私はあなたがローカルホストにいるので、これがわからない、あなたは彼らに連絡したり、到達可能な起源で試してみるべきですhttps://developer.mozilla.org/it/docs/Web/HTTP/Headers/Access-Control-Allow -原点 –

関連する問題