axios put 不工作

Posted

技术标签:

【中文标题】axios put 不工作【英文标题】:axios put Not working 【发布时间】:2018-11-07 13:27:45 【问题描述】:

我的 axios 代码:

 const instance = axios.create(
 baseURL: process.env.BASE_API,
 timeout: 5000,
 withCredentials: true,
 headers: 
'content-type': 'application/x-www-form-urlencoded;charset=UTF-8'

)

function get (url, getData) 
 return instance.get(url, 
 params: getData
 )


function post (url, postData) 
 return instance.post(url, qs.stringify(postData))


function put (url, putData) 
 return instance.put(url, qs.stringify(putData))


export default 
 get: get,
 post: post,
 put: put

使用 content-type 发布请求': 'application/x-www-form-urlencoded; charset=UTF-8 很有用

但是,当使用 PUT 时,请求头没有 content-type': 'application/x-www-form-urlencoded;字符集=UTF-8 使 put 请求成为一个选项

【问题讨论】:

【参考方案1】:

从您的问题中不清楚您到底想问什么。我假设您希望您的 PUT 请求实际发送一个 PUT 请求,而不仅仅是一个 OPTIONS 请求。我还假设您正在向您控制的 API 发出请求。

我遇到了同样的问题(即,当我尝试进行 PUT 调用时,我只看到了 OPTIONS 请求)并且我发现在我的 API 中我没有在我的 CORS 设置中启用 PUT 选项。我正在使用 Rails,所以我所要做的就是将 :put 添加到我的 cors 中间件:

config.middleware.insert_before 0, Rack::Cors do
  allow do
    origins '*'
    resource '*', :headers => :any, :methods => [:get, :post, :put, :options]
  end
end

我是根据this answer想出这个的

【讨论】:

我用的是spring boot,设置了跨域设置放但是用不起 对不起,我不明白你的意思。你不能负担使用吗?我对 Spring 不熟悉,但 this 看起来是个不错的资源。 我的spring boot 跨域设置,POST,PUT,GET,但是我的vue PUT请求被转换为options,Post好用

以上是关于axios put 不工作的主要内容,如果未能解决你的问题,请参考以下文章

API 未在 axios put 中检测 PUT 请求中的模型

django rest + axios put请求错误403

错误:CON laravel恩axios.put“请求,状态码500失败”()

CORS 正在阻止 PUT、DELETE 和 POST 请求,但 GET 正在工作

Axios PUT 不更新数据

反应,节点 axios 不工作,但 fetch 工作