Axios 发布请求被烧瓶制作的 api 拒绝。 CORS错误即将出现[重复]
Posted
技术标签:
【中文标题】Axios 发布请求被烧瓶制作的 api 拒绝。 CORS错误即将出现[重复]【英文标题】:Axios post request is being denied by flask made api. CORS error coming up [duplicate] 【发布时间】:2020-06-23 21:03:52 【问题描述】:我正在尝试通过烧瓶制作的 API 从我的反应应用程序中添加用户。但是发布请求出错并出现以下错误。
'http://localhost:5000/api/v1.0/add' from origin 'http://localhost:3000' 已被 CORS 策略阻止:在预检响应中 Access-Control-Allow-Headers 不允许请求标头字段 access-control-allow-origin。
我的 axios 代码如下
const params =
user_name : '5678234121',
passwd : 'password',
location : 'Kolkata',
pin_code : '700019',
secret_ques: 'What is your mother s maiden name?',
answr : 'aba',
status : 'Active',
remarks : 'test data'
;
const res = await Axios.post(
'http://localhost:5000/api/v1.0/add', params,
headers:
'content-type': 'application/json',
'Access-Control-Allow-Origin' : '*',
'Access-Control-Allow-Methods' : 'GET,PUT,POST,DELETE,PATCH,OPTIONS',
,
);
console.log(res.data);
我的烧瓶代码如下
@app.route('/api/v1.0/add', methods=["POST"])
def add():
con = None
db = datadir + datafile
try:
_json = request.json
_name = _json['user_name']
_psswd = _json['passwd']
_locatn = _json['location']
_pincd = _json['pin_code']
_secrt = _json['secret_ques']
_ans = _json['answr']
_stat = _json['status']
_remks = _json['remarks']
# validate the received values
if _name and _psswd and _pincd and request.method == 'POST':
#do not save password as a plain text
_hashed_password = base64.b64encode(_psswd.encode("utf-8"))
# save edits
sql = '''INSERT INTO user_mast(user_name, passwd, location, pin_code, secret_ques, answr, status, remarks ) VALUES (?, ?, ?, ?, ?, ?, ?, ?)'''
data = (_name, _hashed_password.decode('ASCII'), _locatn, _pincd, _secrt,_ans, _stat, _remks , )
con = sqlite3.connect( db ) # Connection to database
cur = con.cursor()
cur.execute(sql, data)
con.commit()
resp = jsonify('Status' : 'User added successfully!')
resp.status_code = 200
else :
resp = jsonify ('Status' :'Mandatory fields: Name,Password,Pincode missing..')
resp.status_code = 502
except sqlite3.Error as e:
resp = jsonify('Status' :'Database Error')
resp.status_code = 500
except Exception as e:
print(e)
resp = jsonify('Status' :'Unknown Error : Contact Administrator')
resp.status_code = 501
finally:
cur.close()
con.close()
return resp
请帮我修复错误,对此一无所知。
【问题讨论】:
【参考方案1】:如果您对此不熟悉,我建议您将 Flask-CORS 添加到您的应用程序中,而不是使用标题。
【讨论】:
感谢您的回复,您能否详细说明一下,我需要在我的烧瓶应用程序中添加哪些确切的行才能使其正常工作?以上是关于Axios 发布请求被烧瓶制作的 api 拒绝。 CORS错误即将出现[重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python、Tkinter 和烧瓶运行时 0xC0000005
使用 axios 从 flask-restless API 获取数据