【问题标题】:getting error while sending data using ajax get使用ajax get发送数据时出错
【发布时间】:2018-02-02 11:07:31
【问题描述】:

在我的 Spring-MVC 应用程序中,我使用 AJAX GET 请求调用 .jsp 页面并传递一些数据。但我收到了一个例外,它在下面发布。请帮忙。

错误

WARNING: Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.lang.String com.controllers.CustomerController.blankPage(java.lang.String) throws org.json.JSONException AJAX

function blankPage(l) {
                var formData = {
                        name : l
                }
                $.ajax({
                    type : "GET",
                    url : "/MyApp/blankPage",
                    data : formData
                });
            }

Java

@GetMapping(value = "/blankPage")
    public String blankPage(@RequestBody String patientName) throws JSONException {
        System.out.println(patientName);
        return "redirect:/blank";
    }

    @RequestMapping(value = "/blank", method = RequestMethod.GET)
    public String blank() {
        return "blank";
    }

【问题讨论】:

  • 如果你使用data: JSON.stringify(formData) 会怎样?
  • 你用的是@RequestBody,不应该是url参数吗?
  • 在AJAX请求体中发送FORM数据,应该使用POST请求。否则,您应该将 GET 请求中的数据作为 URL 参数发送。 GET 请求不携带任何有效负载。

标签: java ajax spring


【解决方案1】:

带有请求正文的 GET 没有任何意义。

将您的请求作为 POST 请求并将请求作为对象发送。

因为您将 JSON 对象作为请求而不是字符串发送。

@PostMapping(value = "/blankPage")
public String blankPage(@RequestBody PatientRequest patientName) throws JSONException {
        System.out.println(patientName);
        return "redirect:/blank";
}

@getter @setter
class PatientRequest {
 private String patientName;

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2015-12-07
    • 2018-11-02
    • 2020-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多