2017-05-23 10 views
0

他のドメインにアクセスするには、クロスドメイン要求を行い、Cookie /認証情報を提供する必要があります。私はこれを達成するためにJqueryでJSONPを使用しています。私のテストは、Chromeのデベロッパーツールの[ネットワーク]タブでリクエストが200回返されている限り、成功しています。JSONP GETリクエストから返されたデータにアクセスする方法は?

問題は、コールバック関数が呼び出されなかったというエラーが表示されることです。これは、リモートサーバーがコールバック関数で応答していないことを意味しています。しかし、これはサーバーがJSONPを実装していないため、JSONPを使用して所有していないドメインからデータを取得しようとしているだけです。

私は200を得ているので、データにアクセスする方法はありますか?たとえ私がエラー関数内からそうする必要があったとしても?これを行うことができない

$.ajax({ 
    xhrFields: { 
     withCredentials: true 
    }, 
    dataType: 'jsonp', 
    jsonp: false, 
    cache: true, 
    type: "GET", 
    timeout: 5000, 
    url: "https://remote.domain.com/path/search", 
    data: 'keyword=ramy-testing', 
    success: function(data, textStatus, XMLHttpRequest){ 
     console.log('Error: ' + textStatus); 
    }, 
    error:function (xhr, ajaxOptions, thrownError){ 
     alert(xhr.status);  //displays "200" in alert window 
     alert(xhr.statusText); //displays "success" in alert window 
     alert(xhr.responseText); //displays "undefined" in alert window 
     alert(thrownError);  //displays "Error: [callback name] was not called" 
    } 
}); 

答えて

0

は、ここに私のコードです。

サーバーからの応答はJSONPではなく、単なるJSONオブジェクトです。コールバックは呼び出されていないため(存在しないため)、応答は失敗します。

リモートサーバーが許可していない場合、同じ元のポリシーを回避できません。

関連する問題