使用jQuery获取json数据返回无效标签错误
我有这段代码,还尝试过使用$.getJson函数执行类似操作:使用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
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 />");
});
}
}
});