2017-05-09 103 views
0

我想借此从服务器的一些JSON,但我有错误:Ajax jsonp请求。错误:jQuery的不叫

Error: jQuery111106328444090202681_1494341431062 was not called 
at Function.error (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:2:1809) 
at h.jsonp.b.dataTypes.(anonymous function).b.converters.script json (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:27648) 
at Pc (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:18120) 
at x (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:21525) 
at HTMLScriptElement.b.onload.b.onreadystatechange (file:///C:/Users/adm/Documents/temp/WP/wp/www/jquery/jquery-1.11.1.min.js:4:26934) 

使用jQuery 1.11.1 jQuery Mobile的 这是我的js代码:

function myRequest() { 
    $.ajax({ 
     url: "http://dev.agro.ws/result.json", 
     dataType: 'jsonp', 
     crossDomain: true, 
     error: function(xhr, ajaxOptions, thrownError) { 
      console.log(xhr.status); 
      console.log(thrownError); 
     }, 
     success: function(data) { 
      console.log(data); 
     } 
    }); 
} 

$(document).on("pageinit", "#main", function() { 
    $('#btnDownload').click(function(event) { 
     myRequest(); 
    }); 
}); 

有人可以帮我解决问题吗?在留言中提到

+0

因为您无法使JSON成为JSONP ....您调用的服务器需要支持JSONP。 – epascarello

+0

您的文字图片[不是很有用](// meta.unix.stackexchange.com/q/4086)。它不能被朗读或复制到编辑器中,而且它的索引也不是很好,这意味着具有相同问题的其他用户不太可能在此找到答案。请[编辑]您的文章直接合并相关文本(最好使用复制+粘贴以避免转录错误)。 –

回答

0

如,你在你的$.ajax要求正在查询的服务器返回结果以JSON格式而不是JSONP。看看JSON和JSONP Here之间的区别。这里是伪代码(PHP)中的一个基本示例,用于检查请求是否实际上是JSONP

$callback = (isset($_GET['callback']) ? $_GET['callback'] : null); 
if (isset($callback)) 
    echo $callback . '([JSON HERE])'; 
else 
    echo '[JSON HERE]'; 
+0

我需要在服务器上添加一些php脚本,捕获唯一的函数名并返回JSON。 我理解正确吗? – l1s4un

+0

它不需要在PHP中。我只是使用PHP作为我的例子。您将需要一些服务器端语言,可以从URL中读取参数'callback'。该'callback'参数包含需要在JSONP响应'$ .ajax'请求中使用 – Mic1780

+1

感谢很多jQuery的功能,这一切愚蠢的指南只是介绍如何做客户端,但你是我的英雄。 – l1s4un