text/plain和string有什么区别吗?

3

我正在尝试向一个老旧的Java后端发送Put请求。 后端的路径为

@PUT
@Path("/foo/bar")
@Consumes("text/plain")
public String someFunction(String ExpectedArgument){
//Unrelated logic
}

我想使用Javascript和Axios从前端发送一个字符串。

let someString = 'Example String'
axios.put('/foo/bar',someString).then(resp=>console.log(resp))

很不幸,当我尝试进行此操作时,收到了HTTP 415错误,表示内容类型错误。通过查看其他成功的PUT请求,我发现这个请求唯一的不同之处在于它有“@Consumes("text/plain")”这一行。我只能得出结论,Java期望的text/plain和我使用javascript字符串提供的内容有所不同。我想知道我的字符串哪些部分导致被拒绝,并且如何修改代码以使后端接受它。
1个回答

4
const headers = {
  'Content-Type': 'text/plain',
}
let someString = 'Example String'
axios.put('/foo/bar', someString, {
    headers: headers
  }).then(resp=>console.log(resp))

这真是太神奇了。我之前尝试过,但没成功,但是一旦我使用了你的代码,它就起作用了。我一定打错了字。我猜 Java 中有些东西必须检查头文件以确定它们是否正确,并且 axios 调用的默认值不是它正在寻找的“text/plain”。谢谢。 - NegativeFriction
3
如果您说有效载荷必须具有特定的MIME类型,则它必须具有声明为该MIME类型的标头。 - David Conrad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接