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改成一个能访问到的却能弹出来,请高手指点,谢谢

参考技术A $.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);
);

).fail(function()$(\'#c_mUl1\').html("File not found!!"););

因为失败,所以里面那个function根本没执行。。。

.fail(function()$('#c_mUl1').html("File not found!!");); <-- 加在最后的部分

参考技术B 出错处理要写在error里,像这样
$.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获取一个文本文件 代码和症状如下的主要内容,如果未能解决你的问题,请参考以下文章

jQuery:处理 getJSON() 中的错误?

Asp.Net jQuery $.getJSON 有时会导致整页回发?

jQuery $.getJSON() 失败

jQuery:请求 getJSON + SunlightLabs API 帮助

Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

详细解读Jquery各Ajax函数: $.get(),$.post(),$.ajax(),$.getJSON()