jQuery ajax json查看返回的错误数据

2024-09-20 01:42:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我在客户机/服务器环境中广泛地使用jQuery$.ajax({dataType: 'json'}),它工作得很好…当它工作得很好时。问题是,当服务器发生故障时,它不会以json格式返回错误消息(我使用的python带有cgitb)。{j5{I>要从cd4}获取原始数据的函数{j5>要做什么呢?在


Tags: 服务器json消息原始数据客户机环境格式错误
1条回答
网友
1楼 · 发布于 2024-09-20 01:42:52

问题最终是cgib的reset()函数被设计用来“摆脱”一个糟糕的HTML情况,它把jQuery解析搞得一团糟,以至于当jqXHR被传递给error时,responseText标记是空的。这个错误在Safari和Chrome上显示得很好,但实际上它是格式非常糟糕的HTML。最后我替换了cgitb中的一些函数并使用cgitb.手柄()函数,而不是调用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。在

相关问题 更多 >