Ajax请求Restful服务失败?

发布于 2022-09-03 11:47:31 字数 399 浏览 14 评论 0

后台用json对象接收数据,使用jQuery默认$.ajax发送请求失败,发现媒体格式不支持:
clipboard.png
然后,在$.ajax中添加contentType:"application/json",发现还是报错:
clipboard.png

有什么办法?需要怎么做?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗失的美好 2022-09-10 11:47:31
$.ajax({
    //...
    dataType: "json"
});

这个问题看情况是你服务端的事,他响应的 Content-Type 是 text/html,如果内容确实为 JSON 格式,你可以为 ajax 添加选项 dataType 为 "json",来告知 ajax 不用理会响应的 Content-Type,尽管采用 json 解析。


如果你用 $.ajax 的 data 或 url 传递请求数据,你不必设置请求的 contentType,他会默认使用 application/x-www-form-urlencoded。设置不当可能导致服务端无法正常解析请求数据。


如果服务端 REST 服务确实不支持任何 POST/GET 数据,只认 JSON 数据,那你必须在 $.ajax 的 data 选择的值设为 JSON 格式字符串。


我仔细看了你的报错信息,第一个 415 不支持的媒体类型,那就是他不认你发过去的数据格式了;第二个是 400 错误请求,这通常发生在没法识别你的数据或要求的数据未提供。找找文档或问问你的后端同事他支持什么格式的数据,数据结构什么样子,试试 data: JSON.stringify(你的请求数据变量), dataType: "json", contentType: "application/json", 如果报 JSON.stringify 未定义,试试下载并引入 json2 包。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文