如何在提交表单后从服务器发送响应?
问题描述:
我想从python服务器发送一个结果作为对客户端JavaScript的响应。 我的JavaScript代码是在这里:如何在提交表单后从服务器发送响应?
document.addEventListener('DOMContentLoaded', function() {
chrome.tabs.getSelected(null, function(tab) {
d = document;
var xhr = new XMLHttpRequest();
var f = d.createElement('form');
f.action = 'http://127.0.0.1:5000/Get%20Form/';
f.method = 'post';
var i = d.createElement('input');
i.type = 'hidden';
i.name = 'url';
i.value = tab.url;
f.appendChild(i);
d.body.appendChild(f);
f.submit();
});
}, false);
,也是我的蟒蛇服务器的代码如下:
from django.http import HttpResponse
import json
from flask import Flask, flash, redirect, url_for, request,
render_template,jsonify
app = Flask(__name__)
user=""@app.route('/Get Form/',methods = ['POST'])
def GetForm():`
request.method == 'POST'
url=request.form['url']
print url
data={}
data['url'] = url
data['result'] = 'safe'
response = HttpResponse(json.dumps(data), content_type = "application/json")
print response
return
if (__name__ == '__main__'):
app.run(debug=True,host='0.0.0.0', use_reloader=False)
任何机构帮我发到客户端的JSON对象响应的JavaScript
答
可以使用FormData()
与XMLHttpRequest()
可变xhr
在代码中的问题
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://127.0.0.1:5000/Get%20Form/");
xhr.onload = function() {
console.log(xhr.responseText) // do stuff with response from server
}
xhr.onerror = function(err) {
console.error(err)
}
var fd = new FormData();
fd.append("url", tab.url);
xhr.send(fd);
我实现了你的答案。但我仍然收到错误。文件“C:\ Python27 \ lib \ site-packages \ flask \ app.py”,第1725行,在make_response raise ValueError('View function did not return a response') ValueError:View函数未返回响应没有在控制台上显示响应值 –
在'def GetForm():\''中,反引用'\''的目的是什么? – guest271314
其实我试图创建一个铬扩展,它访问当前标签网址和python服务器端我发现当前的网址是钓鱼网站或不。现在我能够接收表单值到python服务器。我的问题是,我不能将我的结果发回到JavaScript客户端。 GetForm函数仅用于读取客户端JavaScript代码中的标签url。你能帮我把python的结果发送给javascript进一步执行吗? –