我有一个使用 Flask 设置的 python Web 服务器,我试图向它发送一个 ajax 请求,然后处理答案。
这是js代码:
var ajaxObj = setXMLHttpRequest();
function setXMLHttpRequest(){
var xhr = null;
if(window.XMLHttpRequest){
xhr = new XMLHttpRequest();
}else if(window.ActiveXObject){
xhr = new ActiveXObject("Microsoft.XMLHTTP0");
}
return xhr;
}
function sendAjaxRequest(){
var url = "/refresh";
ajaxObj.open("GET", url, true);
ajaxObj.onreadystatechange = function(){ajaxAnswerManager()}
ajaxObj.send(null);
}
function ajaxAnswerManager(){
if(ajaxObj.readyState == 4){
var result = ajaxObj.responseText;
alert(result);
}
}
如您所见,我将请求发送到/refresh 路由,但我不确定应该在 server.py 文件上的 app.route(/refresh)
之后定义什么函数,以及最重要的是如何发回答案。
我尝试定义一个简单的函数并通过 return 和 print 发送回结果,但它不起作用,有时我收到 500 内部服务器错误,其他时候警报只会打印回 ajax 请求的页面已发送。
/image/T1GGO.jpg /image/KZYaB.jpg
我在网上寻找解决方案或教程,但找不到适合我的情况的解决方案或教程(实际上我只找到了一个)
那么,我如何回答来自 pyhton 的 ajax 查询?
最佳答案
首先,请开始使用 jquery 来处理 AJAX 请求。它使用起来更容易,使用起来也更干净。上述代码片段只需使用以下代码即可实现:
$.ajax({
url: '/refresh',
type: 'GET',
success: function(response){ alert( response ); }
})
在 python 脚本中,您可以执行以下操作来返回您想要的任何内容:
@app.route('/refresh')
def refresh:
var_you_want = 'whatever you want to return'
return json.dumps({ 'data': var_you_want })
500 内部服务器将指示 python 代码本身存在错误。 另外,因为你上面的python代码发送了一个json对象,所以在success函数中解析它是一个好主意:
$.ajax({
url: '/refresh',
type: 'GET',
success: function(response){ alert( JSON.parse(response) ); }
})
关于javascript - 响应来自 python Web 应用程序的 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32259779/