Javascript 访问控制允许方法
我正在从前端发出以下HTTP请求。我所有的Javascript 访问控制允许方法,javascript,http,cors,fetch,Javascript,Http,Cors,Fetch,我正在从前端发出以下HTTP请求。我所有的GET请求都以相同的方式工作,但以下UPDATE失败: 取 “127.0.0.1/后端/路径” 来自源“”已被CORS策略阻止: 中的访问控制允许方法不允许方法更新 飞行前反应 前端请求 后端烧瓶端点 建议添加一个访问控制允许方法标题,但这已在我的请求中出现!我也不想只为我的浏览器关闭CORS,因为我需要它得到正确的实现。访问控制允许方法必须在选项响应标题中。请记住,后端控制如何访问它。您不能仅仅通过请求来添加允许的方法 而且,UPDATE不是标准的HT
GET
请求都以相同的方式工作,但以下UPDATE
失败:
取
“127.0.0.1/后端/路径”
来自源“”已被CORS策略阻止:
中的访问控制允许方法不允许方法更新
飞行前反应
前端请求
后端烧瓶端点
建议添加一个
访问控制允许方法
标题,但这已在我的请求中出现!我也不想只为我的浏览器关闭CORS,因为我需要它得到正确的实现。访问控制允许方法
必须在选项
响应标题中。请记住,后端控制如何访问它。您不能仅仅通过请求来添加允许的方法
而且,
UPDATE
不是标准的HTTP动词。你是说PUT
还是PATCH
?后端必须发送CORS头lol。我也从未听说过更新http方法。访问控制允许方法必须在选项响应头中。将其添加到请求标头不会影响后端的权限。这些标头是响应标头,而不是请求标头。看看关于CORS的很多问题。这能回答你的问题吗?仔细再读一遍答案。答案是讨论将头添加到服务器端代码。感谢您消除我对CORS的困惑<代码>flask cors
已经将这些头添加到响应中,所以我只需要从请求中删除它们。我的意思肯定是PUT
,不确定UPDATE
来自哪里。事实上,只需切换UPDATE->PUT即可完全修复错误。再次感谢!
return fetch(
`127.0.0.1/backend/path`,
{
method: "UPDATE",
body: JSON.stringify(newClass),
headers: {
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Methods":
"GET, POST, PUT, DELETE, OPTIONS, UPDATE",
"Access-Control-Allow-Headers": "Origin, Content-Type, X-Auth-Token",
"Content-Type": "application/json",
Authorization: "Bearer " + getState().authToken
}
}
)
@app.route('/backend/path', methods=['UPDATE'])
@authenticate
def update_data():
return {"data": "has been updated"}