jQuery的getjson问题 用getjson获取一个文本文件 代码和症状如下
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jQuery的getjson问题 用getjson获取一个文本文件 代码和症状如下相关的知识,希望对你有一定的参考价值。
$.getJSON('http://localhost/xiaoxi2.txt',function(data) alert(data); if (data != null) $('#c_mUl1').empty(); var strhtml =''; $('#c_mUl1').html('<p align=center><img src="../images/load.gif"/></p>'); $.each(data,function(i,c) strHTML += '<li><a href="' + c['url'] + '" target="_blank">' + c['title'] + '</a>'; $('#c_mUl1').html(strHTML); ); else $('#c_mUl1').html("载入失败"); );
http://localhost/xiaoxi2.txt这个文件不存在,现在用alert(data);安全没有任何消息框弹出,也没有执行$('#c_mUl1').html("载入失败"); ,而把URL改成一个能访问到的却能弹出来,请高手指点,谢谢
function(data)
alert(data);
if (data != null)
$(\'#c_mUl1\').empty();
var strHTML =\'\';
$(\'#c_mUl1\').html(\'<p align=center><img src="../images/load.gif"/></p>\');
$.each(data,function(i,c)
strHTML += \'<li><a href="\' + c[\'url\'] + \'" target="_blank">\' + c[\'title\'] + \'</a>\';
$(\'#c_mUl1\').html(strHTML);
);
).fail(function()$(\'#c_mUl1\').html("File not found!!"););
因为失败,所以里面那个function根本没执行。。。
.fail(function()$('#c_mUl1').html("File not found!!");); <-- 加在最后的部分
$.getJSON(url, callback).error(errorHandler=function(jqXHR, textStatus, errorThrown))
适用于jQuery 1.5以上,非跨域或JSONP
jQuery:处理 getJSON() 中的错误?
【中文标题】jQuery:处理 getJSON() 中的错误?【英文标题】:jQuery: handle errors in getJSON()? 【发布时间】:2011-07-20 07:46:11 【问题描述】:使用 jQuery 的 getJSON 时如何处理 500 错误?
关于getJSON()
and JSONP 的错误处理有几个问题,但我没有使用 JSONP,只是使用普通 JSON。
Another answer 建议在调用getJSON()
之前使用.ajaxSetup()
,所以我尝试了这个:
$.ajaxSetup(
"error":function()
alert('Error!');
);
$.getJSON('/book_results/', function(data) # etc
但我发现警报总是会触发,即使结果格式正确。
有什么想法吗?
【问题讨论】:
你能举例说明返回什么并触发警报吗? 它会触发“错误”功能,因为它不存在,而你只是做了一个 :) @Bob - 谢谢 - 是什么造成了错误? :) 在这种情况下,您正在创建一个名为 error 的函数。但真正的错误是什么,我不知道,因为我没有你的文件:) 谢谢你的标记,希望你能找到你的错误! 【参考方案1】:getJSON
方法本身不会返回错误,但您可以深入了解在回调中作为参数返回的 xhr 对象。
getJSON
方法是jQuery.ajax
的简写函数。使用jQuery.ajax
可以轻松实现错误处理:
$.ajax(
url: 'http://127.0.0.1/path/application.json',
dataType: 'json',
success: function( data )
alert( "SUCCESS: " + data );
,
error: function( data )
alert( "ERROR: " + data );
);
【讨论】:
【参考方案2】:如果您使用 jquery 1.5 或更高版本,您可以使用新方法 .success(function)、.error(function) 和 .complete(function)
来自http://api.jquery.com/jQuery.get/的示例
// Assign handlers immediately after making the request,
// and remember the jqxhr object for this request
var jqxhr = $.get("example.php", function()
alert("success");
)
.success(function() alert("second success"); )
.error(function() alert("error"); )
.complete(function() alert("complete"); );
// perform other work here ...
// Set another completion function for the request above
jqxhr.complete(function() alert("second complete"); );
非常适合我。我希望这会有所帮助
【讨论】:
【参考方案3】:你可以在 jquery api getJSON 上看到它:http://api.jquery.com/jQuery.getJSON/
$.getJSON(url).done(function(data)
$("#content").append(data.info);
)
.fail(function(jqxhr)
alert(jqxhr.responseText);
);
//jquery1.5+ 当文本不是正确的 json 字符串或任何其他失败解决方案时,将触发失败回调
【讨论】:
【参考方案4】:使用 jQuery 3.2.1:
$.getJSON('/api/feed/update', function (data)
console.log(data);
).catch(function (jqXHR, textStatus, errorThrown)
console.error(jqXHR);
console.error(textStatus);
console.error(errorThrown);
);
【讨论】:
【参考方案5】:请执行以下操作。伪代码:
$.getJSON('/path/to_your_url.do?dispatch=toggle&' + new Date().getTime(), function(data, status, xhr)
if( xhr.status == 200 )
// all good and do your processing with 'data' parameter( your response)
else
//error - check out the values for only in chrome for 'console'
console.log(xhr.status);
console.log(xhr.response);
console.log(xhr.responseText)
console.log(xhr.statusText);
【讨论】:
以上是关于jQuery的getjson问题 用getjson获取一个文本文件 代码和症状如下的主要内容,如果未能解决你的问题,请参考以下文章
Asp.Net jQuery $.getJSON 有时会导致整页回发?
jQuery:请求 getJSON + SunlightLabs API 帮助