1

我正在编写一个 jQuery 调用来从 memegenerator.net API 检索 JSON 数据。但是,使用下面的代码,每当我在 Chrome 中测试它时,我都会得到一个Uncaught SyntaxError: Unexpected token :错误。我尝试删除回调=?这引发了另一个错误。

每当我直接访问 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_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.

另外,您的网址应该是

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 回答