- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我的情况是,我正在开发一个小型 Web 应用程序,其中服务器提供动态 JSON 响应。服务器建立在 cherrypy 上。有时,创建 JSON 数据的代码中存在错误,该错误会抛出,cherrypy 会捕获它并返回 500 错误,并提供详细说明异常的完整 HTML 页面。 (也就是说,响应包含所有内容:<!doctype..><html><head>...</head><body>...</body></html>
)但是因为请求是 AJAX,所以不会显示。
我可以很容易地拦截这个错误,并在开发工具中查看它;但我想做的(为了简化调试)是打开一个新页面(就像用户点击了一个链接一样)并在浏览器中显示该响应。我试过了
window.open('', '_self');
$(document).html(jqXHR.responseText);
但我只得到一个空白页。我想我可以存储错误文本并在对服务器的第二个请求中提供它,但是有没有更简洁的方法?
为了跟进,最终有效的代码是这样的:
.error(function(jqXHR, textStatus, errorThrown) {
$(window).bind('unload', function() { document.write(jqXHR.responseText); } );
var win = window.open('', '_self');
return false;
});
不确定最后的 return false
是必要的,但它看起来很好。
再次跟进:以上代码在 Opera 中运行可靠。我以为我也看到它在 Webkit 中工作,但我开始注意到它不是;在进一步测试中,它也不适用于 Firefox。
我发现在所有三个平台上都有效的是:
document.open('text/html', true);
document.write(jqXHR.responseText);
document.close();
不必打开另一个窗口或绑定(bind)事件;只需重新打开文档并将文本填入其中即可。
好吧,我又来了。上面的技术要么停止工作,要么当我说它曾经有效时我被绊倒了。特别是 Chrome,似乎没有 document.open
定义。
但是!我刚刚发现了一个似乎无处不在的绝妙技巧:
errtext = 'data:text/html;base64,' + window.btoa(jqXHR.responseText);
window.open(errtext, '_self');
这只是将响应转换为完全独立的 data:
URL 并在窗口中打开它。
最佳答案
试试这个:
var win = window.open('', '_self');
win.document.getElementsByTagName('Body')[0].innerText = jqXHR.responseText;
关于javascript - 如何显示对 AJAX/getJSON 请求的错误(文本/html)响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542586/
我正在尝试获取客户端的 IP 地址和 GPS 坐标。使用 jQuery,我有这个: $.getJSON("http://jsonip.appspot.com/", function(data) {
这个问题已经有答案了: Why does JQuery.getJSON() have a success and a done function? (2 个回答) 已关闭 6 年前。 我想知道这两个代
所以首先,是的,我知道有几个答案,但没有一个能够解决我的问题。首先我将展示我的代码HTML: Shop
假设我有以下 JavaScript: (function($) { $.getJSON(url, function(data) { $.each(data.rows, function(i
是否可以使用 jQuery 在另一个 getJSON 请求中使用 getJSON 请求? 像这样: // Population the Requests List // jQuery AJAX cal
我有以下代码,该代码已针对此问题进行了简化。基本上我有一个循环,在每次迭代中调用 jquery getJSON 函数,调用 API 端点来获取一些天气数据。问题是,当 getJSON 请求被触发时,我
我有一个使用 getJSON 的函数,但它没有像我预期的那样工作。 function balbla(name, param) { $.getJSON("/blabla.json?nam
我有一段代码,例如: $.getJSON("http://mysite.org/polls/saveLanguageTest?url=" + escape(window.location.href)
我正在使用jquery.getJSON() ,但我不知道如何进行错误处理。这些是我需要处理的一些情况。 1)如果返回的数据为null怎么办? 2)如果返回的数据不能解析json怎么办? 3) 如果返回
我正在通过参与一个测试项目(包括 SubSonic 和 jQuery)来学习 asp.net mvc。 我遇到的问题是,每次我想要返回的不仅仅是简单字符串(例如 Json 对象)时,我都会遇到困难,因
执行跨域查询,如果运行的URL不可用(404),如何执行某个功能?我尝试这样的事情: $.getJSON({ url:'example.php?callback=?', statusCode: { 4
我在 jQuery 中搜索了相关主题,但没有找到任何方法来解决我的问题。 $(document).ready(function(){ $("#inputForm").submit(functi
当调用 yahoo Web 服务 (http://boss.yahooapis.com/ysearch) 返回数据集时,是否可以设置超时并在超时后退出例程? jQuery.getJSON("http:
我正在使用 jQuery getJSON() 函数。这个函数获取数据没有问题。但有时等待,等待等待......我的加载栏在页面中心显示加载加载。 所以 jQuery ajax() 函数有一个超时变量。
我有一个 html 代码: asd $('button').click( function() { $.getJSON('/schedule/test/', function
目标:我所追求的是每次在数据库中添加某些内容时(在 $.ajax 到 Submit_to_db.php 之后),从数据库获取数据并刷新 main.php(通过 draw_polygon 更明显)。 所
我已经阅读了文档并用谷歌搜索了此内容,但没有看到问题所在。我正在尝试从本地 json 文件获取一些数据。我已在 JSONLint 验证了响应数据 代码 $(document).ready(functi
我在json.getJSON方法上遇到麻烦。这是我当前的代码: var jqxhr = $.getJSON("http://127.0.0.1:5002?callback=?", function()
我需要进行跨域请求,并且 getJSON 有问题。 $.getJSON("http://usr:pwd@10.0.1.xx/cgi-bin/remote/request.cgi?m=json&r=gr
这个问题已经有答案了: How do I return the response from an asynchronous call? (42 个回答) 已关闭 8 年前。 这是我的问题 我有一个充满
我是一名优秀的程序员,十分优秀!