【问题标题】:Axios patch request not working with LaravelAxios 补丁请求不适用于 Laravel
【发布时间】:2020-06-15 02:59:49
【问题描述】:

我正在尝试从 axios 发出补丁请求,但没有发送数据。

const url = route('industries::update',id)

const headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
}

return axios.patch(url,data,{ headers })

数据参数为“FormData()”

我也尝试在表单数据中使用 _PATCH 附加键 method

let formData = new FormData()
formData.append('method','_PATCH')

但似乎没有任何效果。我从响应中得到默认的 laravel 的 422 错误(这些值是必需的)。

【问题讨论】:

    标签: laravel axios


    【解决方案1】:

    第一。您的数据是 FormData 的实例,但您的标头是 application/x-www-form-urlencoded 这是错误的,请改用 multipart/form-data。但是,当您使用FormData 的实例作为数据时,它会自动设置。

    第二。通过axios.post 发送请求并将_method: PATCH 附加到您的formData

    const url = route('industries::update', id)
    
    /*
    const headers = {
        'Content-Type': ' multipart/form-data' // <= instead of `application/x-www-form-urlencoded`
    }
    */
    
    return axios.post(url, data) // <= instead of `axios.patch` and omit unnecessary `headers`
    

    还有:

    let formData = new FormData()
    formData.append('_method', 'PATCH') // <= instead of `('method', '_PATCH')`
    

    【讨论】:

    • 在尝试此解决方案之前,我也尝试过使用“multipart/form-data”。没用。
    • 这是我的错误。它适用于 axios.post(url,formData) // formData.append('_method','PATCH') 谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 2021-04-27
    • 1970-01-01
    相关资源
    最近更新 更多