【问题标题】:AJAX response is always 405AJAX 响应总是 405
【发布时间】:2019-03-14 07:23:08
【问题描述】:

我有一个 AJAX 帖子

$.ajax({
        type: "POST",
        contentType: "application/json",
        url: "/rating/save",
        data: JSON.stringify(rating),
        dataType: "json",
        mimeType: "application/json",
        success: function (responseData) {
            console.log(responseData);
            window.location.href = "/welcome"
        },
        error: function (responseData) {
            console.log(responseData);
        }
    });

控制器

@Controller
public class RatingController {
........
    @RequestMapping(value = "/rating/save",method = RequestMethod.POST)
        public ResponseEntity<Object> saveRating(@RequestBody List<RatingDTO> ratingDTO) {
            return new ResponseEntity<>(ratingService.save(ratingDTO),HttpStatus.OK);
        }
}

每次我尝试处理来自控制器的响应,即使我没有异常

status: 405
statusText: "error"

错误表示该方法不被允许,但来自此端点的服务运行良好。

【问题讨论】:

  • 登录ResponseEntity&lt;&gt;(ratingService.save(ratingDTO),HttpStatus.OK)并检查值
  • &lt;200 OK,[Rating{id=53, score=2.2, stageOfApprove=0, comment='null', date=Thu Mar 14 09:30:13 EET 2019}],{}&gt;
  • 尝试删除 mimeType: "application/json",
  • 你的类路径中有 Jackson 吗?

标签: javascript java ajax spring spring-mvc


【解决方案1】:

你应该通过method属性设置POST:

$.ajax({
  method: "POST",
  ...

【讨论】:

  • 同样的结果,可能是我使用的库的问题? ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
  • @TarasDanylchenko 你用最新的 jQuery 试过了吗?
  • 是的,3.3.1 是最新的 jQuery 版本,我用这个 code.jquery.com/jquery-3.3.1.min.js 尝试过,得到了同样的结果
  • @TarasDanylchenko 您的 ajax 看起来不错,也许您可​​以检查服务器是否正确响应。尝试一些客户端、邮递员或 curl:curl -X POST &lt;url&gt;
  • 所以,问题出在服务器端。看看日志,也许你在那里发现了问题。
猜你喜欢
  • 2020-06-03
  • 2015-04-28
  • 2014-10-23
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
  • 2015-11-12
  • 1970-01-01
  • 2017-05-21
相关资源
最近更新 更多