Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jQuery获取json数据返回无效标签错误_Json_Jquery - Fatal编程技术网

使用jQuery获取json数据返回无效标签错误

使用jQuery获取json数据返回无效标签错误,json,jquery,Json,Jquery,我有这段代码,还尝试过使用$.getJson函数执行类似操作: jQuery(document).ready(function(){ var kiva_url = "http://api.kivaws.org/v1/loans/newest.json"; jQuery.ajax({ type: "GET", url: kiva_url, data:"format=json", success: funct

我有这段代码,还尝试过使用$.getJson函数执行类似操作:

jQuery(document).ready(function(){
    var kiva_url = "http://api.kivaws.org/v1/loans/newest.json";

    jQuery.ajax({
        type: "GET",
        url: kiva_url,
            data:"format=json", 
        success: function(data){
            alert("here");
            jQuery.each(data.loans, function(i, loan){
                jQuery("#inner_div").append(loan.name + "<br />");
            });
        },
        dataType: "jsonp",
        error: function(){
            alert("error");
        }
    });

});
jQuery(文档).ready(函数(){
var kiva_url=”http://api.kivaws.org/v1/loans/newest.json";
jQuery.ajax({
键入:“获取”,
url:kiva_url,
数据:“format=json”,
成功:功能(数据){
警报(“此处”);
jQuery.each(data.loans,function)(i,loans){
jQuery(“#inner_div”).append(loan.name+”
); }); }, 数据类型:“jsonp”, 错误:函数(){ 警报(“错误”); } }); });
当我查看Firebug时,它返回一个“无效标签”错误。我搜索了一些人提到的使用解析器解析结果的地方。我可以在Firebug中看到结果。有人能举个例子说明我应该做什么吗

Firebug错误:

无效标签 第1行

json外观的示例输出可在此处找到:
也许这对jsonp有帮助:


错误发生在哪里?当您尝试循环ajax数据并将其附加到内部_div时,是否会发生错误?如果是,请向我们展示data.loans的样子

此外,您的代码中还有一个输入错误:

            jQuery.each(data.loans, function(i, loan){
                    jQuery("#inner_div").append(loan.name + "<br />"); //It should be loan.name and not laon.name
            });
    },
jQuery.each(data.loan,function(i,loan){
jQuery(“#inner_div”).append(loan.name+”
;//应该是loan.name而不是laon.name }); },
我找到了答案……看起来kiva不支持jquery所做的jsonp-

…我们没有支持JSONP的计划。 支持这一点会导致贫困 安全实践和存在 已经有了一些很好的方法来访问 来自JavaScript的数据可以保护您的 应用程序和您的用户。这里有一个 关于这个主题的伟大文章:

而Kiva贷款人的风险很低 既然我们现在只处理 公共数据,允许私人贷款人 要通过脚本标记导入的数据为 沿着这条路越走越远。我们的 思想是风险(和复杂性) 添加以创建安全的应用程序) 不值得这么做 开发者

为服务器写入服务器端代理 您需要的提要是最常见的 访问数据库中数据的解决方案 基于浏览器的应用程序。一些 使用iframe还存在其他技巧。这个 最好的希望是新一代的客户- 基于将 让基于浏览器的JavaScript访问 跨域资源安全( ). 一些工具,如BrowserPlus和Gears 今天让你玩这些,但是你 我不能依靠这些 有一段时间,我在野外工作

最后,我要指出 在中使用JSON响应的任何人 JavaScript应该解析JSON 在之前显式或验证JSON 将eval()带到它。请看这里:

从页面链接是一个很好的方法 参考实施 建议的ECMAScript JSON解析器 接口,JSON.parse()

干杯,斯凯拉


返回数据时,是否使用正确的内容类型和方法返回数据

您应该按如下方式返回数据(PHP5示例):

在调用javascript代码中,必须有一个方法与返回的回调方法相匹配,在本例中:

function my_callback_method( returned_data ){
}
因此,完整的调用js应该如下所示

jQuery(document).ready(function(){
var kiva_url = "http://api.kivaws.org/v1/loans/newest.json";

jQuery.ajax({
    type: "GET",
    url: kiva_url,
        data:"format=json", 
    dataType: "jsonp",
    error: function(xmlhttp,error_msg){
            alert("error"+error_msg);
    }
});

function my_callback_method( data ){
   alert("here");
   if( data && typeof(data) == 'object') ){
     jQuery.each(data.loans, function(i, loan){
         jQuery("#inner_div").append(loan.name + "<br />");
     });
   }
}

});
jQuery(文档).ready(函数(){
var kiva_url=”http://api.kivaws.org/v1/loans/newest.json";
jQuery.ajax({
键入:“获取”,
url:kiva_url,
数据:“format=json”,
数据类型:“jsonp”,
错误:函数(xmlhttp,错误消息){
警报(“错误”+错误消息);
}
});
函数my_回调_方法(数据){
警报(“此处”);
if(数据和类型(数据)=‘对象’){
jQuery.each(data.loans,function)(i,loans){
jQuery(“#inner_div”).append(loan.name+”
); }); } } });
这就是答案

只需用回调请求包装Json响应 例如,
jQuery16203473509402899789_1315368234762({“code”:200,“Message:“Place added successfully”,“Content:”})
哪里
jQuery16203473509402899789_1315368234762
是您的回调请求(您可以通过querystring获取)
{“code”:200,“Message”:“Place added successfully”}
您的JSON响应是否修复了我的输入错误?我相信它在检索中-如果我去掉jquery循环,我仍然会得到错误。哪一行给出了错误?你能包括Firebug错误快照吗?谢谢Brendan,你刚刚为我节省了很多时间!
jQuery(document).ready(function(){
var kiva_url = "http://api.kivaws.org/v1/loans/newest.json";

jQuery.ajax({
    type: "GET",
    url: kiva_url,
        data:"format=json", 
    dataType: "jsonp",
    error: function(xmlhttp,error_msg){
            alert("error"+error_msg);
    }
});

function my_callback_method( data ){
   alert("here");
   if( data && typeof(data) == 'object') ){
     jQuery.each(data.loans, function(i, loan){
         jQuery("#inner_div").append(loan.name + "<br />");
     });
   }
}

});