2024-09-20 01:42:52 发布
网友
我在客户机/服务器环境中广泛地使用jQuery$.ajax({dataType: 'json'}),它工作得很好…当它工作得很好时。问题是,当服务器发生故障时,它不会以json格式返回错误消息(我使用的python带有cgitb)。{j5{I>要从cd4}获取原始数据的函数{j5>要做什么呢?在
$.ajax({dataType: 'json'})
cgitb
问题最终是cgib的reset()函数被设计用来“摆脱”一个糟糕的HTML情况,它把jQuery解析搞得一团糟,以至于当jqXHR被传递给error时,responseText标记是空的。这个错误在Safari和Chrome上显示得很好,但实际上它是格式非常糟糕的HTML。最后我替换了cgitb中的一些函数并使用cgitb.手柄()函数,而不是调用cgitb.enable。下面是一些代码:
reset()
error
responseText
cgitb.enable
import sys import cgitb def noRest(): return "Content-Type: text/html\n\n<html>\n" cgitb.reset = noRest oldhtml = cgitb.html def newHTML((etype, evalue, etb), context=5): x = oldhtml((etype, evalue, etb), context) return x + "\n</body></html>\n" cgitb.html = newHTML try: [ main script here ] except Exception as e: cgitb.handler(sys.exc_info())
然后$.ajax({ })例程可以保持独立,error: function(xhr) { }处理xhr.responseText。在
$.ajax({ })
error: function(xhr) { }
xhr.responseText
问题最终是cgib的
reset()
函数被设计用来“摆脱”一个糟糕的HTML情况,它把jQuery解析搞得一团糟,以至于当jqXHR被传递给error
时,responseText
标记是空的。这个错误在Safari和Chrome上显示得很好,但实际上它是格式非常糟糕的HTML。最后我替换了cgitb
中的一些函数并使用cgitb.手柄()函数,而不是调用cgitb.enable
。下面是一些代码:然后
$.ajax({ })
例程可以保持独立,error: function(xhr) { }
处理xhr.responseText
。在相关问题 更多 >
编程相关推荐