我在 ReactJS 中使用 axios PATCH 方法来更新记录,但它因以下错误而失败
Failed to load http://192.168.99.100:8080/adslots/883: Method PATCH is not allowed by Access-Control-Allow-Methods in preflight response.
这是我的操作:
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));
})
}
}
我完全糊涂了。
最佳答案
您调用的 API 必须允许 PATCH 请求。他们可以通过将 Access-Control-Allow-Methods header 设置为在其中也包含补丁来做到这一点。查看如何使用您的 api 使用的任何服务器端语言来执行此操作。您也可以尝试将调用切换为 POST 请求,但这更像是一种临时修复。
关于javascript - 飞行前响应中的 Access-Control-Allow-Methods 不允许方法 PATCH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50541002/