Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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 访问控制允许方法_Javascript_Http_Cors_Fetch - Fatal编程技术网

Javascript 访问控制允许方法

Javascript 访问控制允许方法,javascript,http,cors,fetch,Javascript,Http,Cors,Fetch,我正在从前端发出以下HTTP请求。我所有的GET请求都以相同的方式工作,但以下UPDATE失败: 取 “127.0.0.1/后端/路径” 来自源“”已被CORS策略阻止: 中的访问控制允许方法不允许方法更新 飞行前反应 前端请求 后端烧瓶端点 建议添加一个访问控制允许方法标题,但这已在我的请求中出现!我也不想只为我的浏览器关闭CORS,因为我需要它得到正确的实现。访问控制允许方法必须在选项响应标题中。请记住,后端控制如何访问它。您不能仅仅通过请求来添加允许的方法 而且,UPDATE不是标准的HT

我正在从前端发出以下HTTP请求。我所有的
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"}