我正在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));
})
}
}
我完全糊涂了。
5条答案
按热度按时间3vpjnl9f1#
您正在调用的API必须允许PATCH请求。他们可以通过设置Access-Control-Allow-Methods头来实现这一点,也可以在其中包含Patch。查找如何使用您的API所使用的任何服务器端语言来实现这一点。您也可以尝试将您的调用切换到POST请求,但这更多的是一种临时修复。
ulmd4ohb2#
我认为这是与你后端的CORS设置有关的问题。你必须在CORS设置中允许PATCH请求。你使用的是什么样的后端服务器?
0kjbasz63#
请尝试以下解决方案:
1.转到定义了所有中间件的app.js文件。
1.打开终端并键入命令“npm install cors”,然后按回车键。
1.现在在文件中编写以下代码:
希望,它会做的把戏!
2ledvvac4#
您可以使用任何cors扩展/插件,使其在浏览器中工作.此外,请确保您已配置扩展设置有时PATCH请求未在扩展设置中列出
很乐意为您提供帮助!
y1aodyip5#
解决方法:使用browserplugin CORS(chrome)当cors被激活时,你可以打开cors选项并将localhost:3000添加到白名单中。然后这个东西对我来说是工作的