Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t在Flask中解决CORS策略问题_Javascript_Python 3.x_Flask - Fatal编程技术网

Javascript Can';t在Flask中解决CORS策略问题

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

我正在用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 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不起作用。