axios 预检响应中的Access-Control-Allow-Methods不允许使用方法PATCH

vawmfj5a  于 2022-12-12  发布在  iOS
关注(0)|答案(5)|浏览(334)

我正在ReactJS中使用axios PATCH方法更新记录,但获取失败,出现以下错误
无法加载http://192.168.99.100:8080/adslots/883:预检响应中的Access-Control-Allow-Methods不允许使用方法PATCH。
下面是我的行动:

export const UPDATE_AD_SLOTS_REQUEST = 'UPDATE_AD_SLOTS_REQUEST';
export const UPDATE_AD_SLOTS_SUCCESS = 'UPDATE_AD_SLOTS_SUCCESS';
export const UPDATE_AD_SLOTS_ERROR = 'UPDATE_AD_SLOTS_ERROR';

export function updateAdslotsRequest(){
  return {
    type: UPDATE_AD_SLOTS_REQUEST
  }
}

export function updateAdslotsSuccess(data){
  return {
    type: UPDATE_AD_SLOTS_SUCCESS,
    data: data
  }
}

export function updateAdslotsError(errors){
  return {
    type: UPDATE_AD_SLOTS_ERROR,
    erros: errors
  }
}

export function updateAdslots(data, id) {
  return dispatch => {
    dispatch(updateAdslotsRequest());
    return axios.patch(`http://192.168.99.100:8080/adslots/${id}`, data)
      .then(res => {
        dispatch(updateAdslotsSuccess(res.data));      
      })
      .catch(errors => {
        dispatch(updateAdslotsError(errors));
      })
  }
}

我完全糊涂了。

3vpjnl9f

3vpjnl9f1#

您正在调用的API必须允许PATCH请求。他们可以通过设置Access-Control-Allow-Methods头来实现这一点,也可以在其中包含Patch。查找如何使用您的API所使用的任何服务器端语言来实现这一点。您也可以尝试将您的调用切换到POST请求,但这更多的是一种临时修复。

ulmd4ohb

ulmd4ohb2#

我认为这是与你后端的CORS设置有关的问题。你必须在CORS设置中允许PATCH请求。你使用的是什么样的后端服务器?

0kjbasz6

0kjbasz63#

请尝试以下解决方案:
1.转到定义了所有中间件的app.js文件。
1.打开终端并键入命令“npm install cors”,然后按回车键。
1.现在在文件中编写以下代码:

const cors = require("cors");

const app = express();

app.use(cors());

希望,它会做的把戏!

2ledvvac

2ledvvac4#

您可以使用任何cors扩展/插件,使其在浏览器中工作.此外,请确保您已配置扩展设置有时PATCH请求未在扩展设置中列出
很乐意为您提供帮助!

y1aodyip

y1aodyip5#

解决方法:使用browserplugin CORS(chrome)当cors被激活时,你可以打开cors选项并将localhost:3000添加到白名单中。然后这个东西对我来说是工作的

相关问题