1

memegenerator.netAPIからJSONデータを取得するためのjQuery呼び出しを作成しています。ただし、以下のコードを使用すると、ChromeでテストするたびにUncaught SyntaxError:Unexpected token: errorが発生します。callback =を削除してみましたか?そしてそれは別のエラーを投げました。

URLに直接アクセスすると、正常に戻ります。

JSFiddleのJSLintは、返されたJSONを有効として宣言します。

この通話を成功させる方法について何かアイデアはありますか?

<script>
$(document).ready(function() {
    $.ajax({
        type: 'GET',
        url: 'http://version1.api.memegenerator.net/Instances_Select_ByNew?languageCode=en&pageIndex=0&pageSize=12&urlName=Insanity-Wolf?callback=?',
        dataType: 'json',
        success: function() {
            console.log('Success!');
        },
        error: function() {
            console.log('Uh Oh!');
        }
    });
});​      
</script>
4

3 に答える 3

0

クロスドメインエラーのように聞こえます。jsonpサーバー上でまたはプロキシスクリプトを使用せずに、ajaxを使用して自分以外のドメインから要求することはできません。(phpを使用している場合はcURLリクエストになります)

ajaxドキュメントページでjsonpを探します

cURLリクエスト:

$cURL = curl_init();
curl_setopt($cURL, CURLOPT_URL, 'http://version1.api.memegenerator.net/Instances_Select_ByNew?languageCode=en&pageIndex=0&pageSize=12&urlName=Insanity-Wolf');
curl_setopt($cURL, CURLOPT_HEADER, 0 );
curl_setopt($cURL, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt($cURL, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($cURL);
curl_close($cURL);
echo $output;
于 2012-08-10T20:47:34.447 に答える
0

ブラウザーのセキュリティ制限により、ほとんどの "Ajax" 要求は同一オリジン ポリシーの対象となります。要求は、別のドメイン、サブドメイン、またはプロトコルからデータを正常に取得できません。jsonp が必要です。

于 2012-08-10T20:50:14.490 に答える
0

その API は JSONP をサポートしていないか、または とは異なるコールバック パラメータを探していますcallback

また、あなたのURLは

http://version1.api.memegenerator.net/Instances_Select_ByNew?languageCode=en&pageIndex=0&pageSize=12&urlName=Insanity-Wolf&callback=?

&の代わりに注意してください?

また、dataType は"jsonp"

于 2012-08-10T20:51:19.327 に答える