我试图让最简单的休息API,我可以在Python中,我有麻烦。我不确定我做错了什么,但我认为它与CORS有关。这是令人沮丧的,因为我已经使用了flask_cors软件包来解决这个问题,而且它看起来不起作用。Python/Flask Rest API未通过预检w/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错误,但我真的不知道发生了什么问题。有任何想法吗?
编辑:在这里有(https://flask-cors.readthedocs.io/en/v1.3.1/index.html?highlight=preflight)文件中有关于预检的任何内容的唯一地方。如果我添加
@cross_origin(headers=['Content-Type']) # Send Access-Control-Allow-Headers
它不会中断应用程序,但它也不会修复错误。
我也试过使用这里使用的方法:http://flask.pocoo.org/snippets/56/,并在此stackoverflow答案引用:https://stackoverflow.com/questions/22181384/javascript -no-access-control-allow-origin-header-is-present-on-the-request,并且它似乎也不起作用。同样的错误。 –
您是否先在浏览器地址栏中尝试过URL,以确保它实际上正常工作? –