2017-03-16 14 views
0

私は、単純なAJAX要求している:私は手動でリンクを開くとjqueryでhttps apiをリクエストするにはどうすればよいですか?

$.ajax({url: 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=stuff&callback=JSON_CALLBACK',success: function(data){ 
console.log(data); 
}}); 

、私はなく、AJAXリクエストを通じて、私はしたいオブジェクトを取得します。問題は、apiアドレスがhttpであれば動作することです。それがなぜ、私がそれをどうやってどうやって得るのか教えてもらえますか?

+0

「$ .get」 –

答えて

0

あなたは簡単にgetで管理することができます:https://api.jquery.com/jquery.get/

$.get("https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=stuff&callback=JSON_CALLBACK", function(data) { 
    console.log(data); 
}); 
+1

これを試してみると、コンソールに「No Access Control header」というエラーが表示されます –

0

まずあなたがGET要求ではなく、POSTを送信する必要があります。しかし、より大きな問題はJSONではなくJSONPデータを取得する必要があることです。

は、あなたが適切な設定で $.ajax()を使用することができ、これを行うには:

$.ajax({ 
 
    url: 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=stuff', 
 
    dataType: 'jsonp', 
 
    jsonpCallback: 'JSON_CALLBACK', 
 
    success: function(data) { 
 
    console.log(data); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

はあなたがJSONPを使用していることを指定するために覚えておく必要があります。

$.ajax({ 
 
\t url: 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=stuff&callback=?', 
 
\t success: function(data){ 
 
\t \t console.log(data); 
 
\t }, 
 
\t dataType: 'jsonp', 
 
     jsonpCallback: 'JSON_CALLBACK' 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

ここのように、あなたのAJAX設定のデータ型のオプションとして 'JSONP' を追加してみてください:

$.ajax({ 
 
    url: 'https://en.wikipedia.org/w/api.php?format=json&action=query&generator=search& gsrnamespace=0&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max&gsrsearch=stuff&callback=JSON_CALLBACK', 
 
    dataType: 'jsonp', 
 
    success: function(data){ 
 
    console.log(data); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>

編集:明確にしますか、 $ getも使うことができますが、これはちょっとしたバージョンの

01です
$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

$ ajaxはデフォルトのリクエスト方法として 'GET'を使用しています。

関連する問題