2017-10-28 11 views
0

ブラウザにURLを入力すると、json応答が返されます。しかし、私は私のコードjQuery ajax remote json not working

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
<script> 
$.ajax({ 
    url:"https://api.qwant.com/api/search/images?count=10&offset=1&q=cars", 
    type:"GET", 
    crossDomain : true, 
    async: false, 
    dataType: "jsonp", 
    jsonpCallback: "getStatus", 

    success: function(json) { 
    }, 

    error: function(e) { 
     console.log(e); 
    } 
}); 

function getStatus(response) 
{ 
    console.log(response.status); 
} 
</script> 
+0

dataTypeを "json"に変更できますか? –

+0

Ajaxリクエストで 'async:false'を使用することは決してありません。そのための有効なユースケースは1つしかありません。 – Tomalak

+0

JS関数$はすでに実行されており、実行時に完全に読み込まれていますか?私のように見えない – Zim84

答えて

0

api.qwantリターンJSON、JSONPないを使用して応答にアクセスすることはできません。また、same-origin policyによっても制限されています。したがって、ブラウザのセキュリティのためにクロスドメインのajaxリクエストでデータにアクセスするのは問題ありません。CORS proxyがCORSヘッダーを追加し、同じオリジンポリシーをバイパスします。

ところで、あなたはCORSを使用して機能を試すことができますし、JSONPは、APIをサポート:

$.ajax({ 
    url:"https://jsonplaceholder.typicode.com/posts", 
    type:"GET", 
    jsonpCallback: "getStatus", 
    dataType: "jsonp", 

}); 
function getStatus(response) 
{ 
    console.log(response); 
} 

を参照: