【发布时间】:2019-08-21 21:01:41
【问题描述】:
我目前正在开发一个 Web 应用程序,但遇到了一个奇怪的问题。我使用 XMLHttpRequest 从 Google Chrome 和 Firefox 发送到我的烧瓶应用程序的请求按预期工作,但在 IE11 和可能的旧版本中,看起来 IE 在数据完全传输之前关闭了连接。我这样发送帖子请求:
function getData() {
var req = new XMLHttpRequest();
req.open("POST", "http://"+window.host+"/text", true);
req.responseType = "json";
req.addEventListener("readystatechange", function(e){
if (e.target.readyState == 4 && e.target.status == 200){
display(e.target.response.data);
}
});
req.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
req.send(JSON.stringify({"text": "some text"}));
}
并像这样从烧瓶应用程序接收:
@app.route('/text', methods=["POST"])
def data():
if request.is_json:
if "text" in request.get_json():
for i in request.get_json()["text"]:
if not re.search(textIntegrity, i):
return jsonify({"status": "Unrecognized characters: {}.".format(i)})
break
data = reData(request.get_json()["text"])
return jsonify({"status": 200, "data": data})
else:
return jsonify({"status": "Key 'text' not found."})
else:
return jsonify({"status": "Request type is not in json format."})
在 mozilla 和 firefox 中,我得到了完整的数据,并且 XMLHttpRequest 对象指出响应类型是 json:Mozilla Response 但在 IE 中没有响应类型,如果响应太长,则会切断响应: IE Response
不知道是flask问题还是IE处理请求的方式,可能我需要在flask项目中添加一些headers但我不知道。
【问题讨论】:
标签: javascript python flask xmlhttprequest