Javascript Can';t在Flask中解决CORS策略问题
我正在用Python创建一个webhook,它将从HTML表单接收数据,并将其保存为JSON文件。但是当我从HTML发布文章时,它显示了以下错误Javascript Can';t在Flask中解决CORS策略问题,javascript,python-3.x,flask,Javascript,Python 3.x,Flask,我正在用Python创建一个webhook,它将从HTML表单接收数据,并将其保存为JSON文件。但是当我从HTML发布文章时,它显示了以下错误 form.html:1 Access to XMLHttpRequest at 'http://localhost:5000/webhook/' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access co
form.html:1 Access to XMLHttpRequest at 'http://localhost:5000/webhook/' from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
我在其他线程中寻找这个,然后我遇到了flask\u cors
,然后我相应地修改了flask应用程序,如下所示:
from flask_cors import CORS, cross_origin
from flask import Flask, request, abort
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@app.route('/webhook', methods=['POST'])
def webhook():
if request.method == 'POST':
print(request.json)
return '', 200
else:
print("bad data")
if __name__ == '__main__':
app.run(debug=True)
但即使这样做了,它仍然无法完成POST请求。我仍然得到相同的错误,在这一点上,我不知道下一步要做什么,也不知道如何修复它
HTML格式的JavaScript代码:
<script>
document.getElementById("prev").addEventListener("click", myFunction);
function myFunction() {
form = document.getElementById("main");
document.querySelector(".loading").style.display = "block";
var data = {};
for (var i = 0, ii = form.length; i < ii; ++i) {
var input = form[i];
if (input.name) {
data[input.name] = input.value;
}
}
var http_request;
http_request = new XMLHttpRequest();
http_request.onreadystatechange = function () { /* .. */ };
http_request.open("POST", "http://localhost:5000/webhook/");
http_request.setRequestHeader("Content-Type", "application/json");
http_request.send(JSON.stringify(data));
document.querySelector(".loading").style.display = "none";
}
</script>
document.getElementById(“prev”).addEventListener(“单击”,myFunction);
函数myFunction(){
form=document.getElementById(“main”);
document.querySelector(“.load”).style.display=“block”;
变量数据={};
对于(变量i=0,ii=form.length;i
我需要帮助。谢谢。这回答了你的问题吗?不,没用。但我现在切换到jQuery。通过Ajax发送POST数据,效果很好。只有JavaScript XHR不起作用。