当我从浏览器执行下面的代码时,服务器给我400,并抱怨请求正文丢失。有人知道我如何传递一个简单的字符串,并将其作为请求正文发送吗?
let content = 'Hello world'
axios.put(url, content).then(response => {
resolve(response.data.content)
}, response => {
this.handleEditError(response)
})
如果我把内容 Package 在[]中,它就会通过。但是服务器接收到的是一个以[开头并以]结尾的字符串。这看起来很奇怪。
经过一番折腾,我发现下面的作品
let req = {
url,
method: 'PUT',
data: content
}
axios(req).then(response => {
resolve(response.data.content)
}, response => {
this.handleEditError(response)
})
但第一个不也应该起作用吗?
9条答案
按热度按时间9cbw7uwe1#
我通过覆盖默认的
Content-Type
解决了这个问题:根据我的经验,默认的
Content-Type
对于字符串是application/x-www-form-urlencoded
,对于对象(包括数组)是application/json
。u5rb5r592#
这对我来说是有效的(从node js repl调用的代码):
日志:200
这是我的请求处理程序(我使用的是retify):
Content-Type标头在这里很重要。
8gsdolmq3#
我在发送纯文本时遇到了麻烦,发现需要用双引号将正文的值括起来:
我的webapi服务器方法签名如下:
ergxz8rk4#
您是否尝试过以下方法:
参考:http://codeheaven.io/how-to-use-axios-as-your-http-client/
bn31dyow5#
第一个月
示例:
mm5n2pyu6#
简单地放入报头
'Content-Type': 'application/json'
,发送的数据放入主体JSON.stringify(string)
siotufzp7#
另一个简单的解决方案是在给定代码中用大括号将content变量括起来,如下所示:
警告:但这不会将其作为字符串发送;它将把它 Package 在一个json主体中,如下所示:{content:“您好,世界”}
dbf7pr2w8#
这对我很有效:
lzfw57am9#
这对我很有效。