Python/Rest API未通过带CORS的飞行前测试

Python/Rest API未通过带CORS的飞行前测试,python,rest,flask,cors,structure,Python,Rest,Flask,Cors,Structure,我正在尝试用python编写最简单的RESTAPI,但我遇到了麻烦。我不确定我做错了什么,但我认为这与CORS有关。这是令人沮丧的,因为我使用了flask_cors包来解决这个问题,但它似乎不起作用 在main.py文件中,我有以下内容 from flask import Flask from flask_cors import CORS, cross_origin app = Flask(__name__) CORS(app) import routes.login if __name_

我正在尝试用python编写最简单的RESTAPI,但我遇到了麻烦。我不确定我做错了什么,但我认为这与CORS有关。这是令人沮丧的,因为我使用了flask_cors包来解决这个问题,但它似乎不起作用

在main.py文件中,我有以下内容

from flask import Flask
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app)

import routes.login

if __name__ == '__main__':
    app.run(debug=True)
对于我的项目,我将此作为我的文件夹结构:

main.py
__init__.py
routes
  __init__.py
  login.py
我在login.py中有以下代码

from flask import Flask
from flask_cors import CORS, cross_origin

from main import app
CORS(app)

@app.route('/login', methods=['POST', 'GET'])
@cross_origin()
def login(name, password):
    if request.method == 'POST':
        print('inside login POST')
    if request.method == 'GET':
        print('inside login GET')
我当前遇到以下错误:

xhr.js:178 OPTIONS http://localhost:5000/login 404 (NOT FOUND)
dispatchXhrRequest @ xhr.js:178
xhrAdapter @ xhr.js:12
dispatchRequest @ dispatchRequest.js:52
:3000/pictureswapper:1 XMLHttpRequest cannot load http://localhost:5000/login.
 Response for preflight has invalid HTTP status code 404
有些CORS错误,但我真的不知道出了什么问题。有什么想法吗

编辑:文档中关于飞行前的唯一地方是这里()。如果我加上

@cross_origin(headers=['Content-Type']) # Send Access-Control-Allow-Headers

它不会中断应用程序,但也不会修复错误。

将选项添加到路由装饰器的methods关键字,或将该关键字全部删除

几个月后再次访问

python/flask中的一个棘手问题是编译后的代码将被缓存,因此如果您在应用程序的入口点(即main.py)更改了某些内容,并且没有删除flask export创建的二进制文件,那么每次运行flask export并重新编译时,它可能都使用了旧代码


如果您得到了令人毛骨悚然的输出,请确保删除(在atom中,它们是紫色的1/0文件-如果您启用了文件图标-标记为.pyc)这些文件。

我还尝试使用此处使用的方法:,并在stackoverflow答案中引用:,但它似乎也不起作用。同样的错误。您是否先尝试了浏览器地址栏中的URL以确保它实际工作?