如何将Python异常信息返回到jQuery.ajax POST调用?
我在HTML代码中编写了一个JQUERY AJAX代码:如何将Python异常信息返回到jQuery.ajax POST调用?,jquery,python,ajax,Jquery,Python,Ajax,我在HTML代码中编写了一个JQUERY AJAX代码: $.ajax({ type: "POST", url: "runrep.py", data: { 'my_data' : 'test' }, success: function(html)
$.ajax({
type: "POST",
url: "runrep.py",
data:
{
'my_data' : 'test'
},
success: function(html)
{
}
error:function(xhr,err)
{
alert("Failed\nreadyState: "+xhr.readyState+"\nstatus: "+xhr.status + "\nresponseText: "+xhr.responseText);
}
});
在我的后端代码“runrep.py”中,我特别尝试连接到一个已关闭的MySQL数据库
当我在Apache错误日志中运行程序时,我看到DB无法连接MySQL异常,但UI页面没有呈现任何错误
class SampleClass:
def __init__(self):
self.conn = MySQLdb.connect(host="host",user="user",passwd="passwd",db="db")
self.cursor = self.conn.cursor(MySQLdb.cursors.DictCursor)
form = cgi.FieldStorage()
self.my_data = form["my_data"].value
我应该怎么做才能将程序错误打印到浏览器/客户端,无论是异常还是由于运行时问题导致的错误?即使捕获到异常,我如何将失败返回到相应的AJAX调用?基本上,您应该在代码中处理异常并将其传递给服务器代码。例如,如果您使用的是Werkzeug/Flask(请参阅),则可以通过以下方式执行:
import werkzeug
class SampleClass:
def __init__(self):
try:
self.conn = MySQLdb.connect(host="host",user="user",passwd="passwd",db="db")
except Exception as e:
raise werkzeug.exceptions.HTTPException("Error: %s" % str(e) )
self.cursor = self.conn.cursor(MySQLdb.cursors.DictCursor)
form = cgi.FieldStorage()
self.starttime = form["my_data"].value
服务器框架应该将引发的异常转换为正确的HTTP响应,其中一些HTTP状态代码表示错误,例如500。当服务器响应错误代码时,您可以在AJAX查询中处理它
有关异常处理和带有错误状态代码的响应的更多信息,请参阅HTTP/WSGI框架