簡體   English   中英

400錯誤的請求或415不支持的媒體類型在Ajax呼叫中

[英]400 Bad request or 415 Unsupported Media type in Ajax post call

我在春季創建了一個POST rest控制器。 我想從ajax調用中調用此控制器。

@RequestMapping(value = "/getAdzAcrVehicle")
@RestController("AdzoneAcrVehicle")
public class AdzoneAcrVehicleController {

private static Logger LOG = Logger.getLogger(AdzoneAcrVehicleController.class.getName());

private String jsonresponse;
@Autowired
@Qualifier(value="AzoneAcrVehicleService")
private AzoneAcrVehicle azoneAcrVehicle;
@RequestMapping(method = RequestMethod.POST)
public String getAll(@RequestBody ObjectNode json) {
       System.out.println(json);
    return json.get("vehicle").asText();
}
}

我試圖通過使用下面提供的所有解決方案來調用該休息控制器,但是我收到400錯誤的請求或415不支持的媒體類型錯誤。

1)

var parameter = JSON.stringify({vehicle:datas[3]});
                 $.ajax({
                        url: appName+'/getAdzAcrVehicle',
                        type: 'post',
                        dataType: 'json',
                        success: function (data) {
                           console.log(data);
                        },
                        data: parameter
                    });

2)

                 $.ajax({
                    type: 'post',
                    url: appName+'/getAdzAcrVehicle',
                    data: JSON.stringify(parameter),
                    contentType: "application/json; charset=utf-8",
                    traditional: true,
                    success: function (data) {
                    console.log(data);
                    }
                }); 

由於它是@RestController因此@ResponseBody https://stackoverflow.com/a/25242458/6677551

您可以指定內容類型。

var parameter = JSON.stringify({vehicle:datas[3]});
    $.ajax({
            url: appName+'/getAdzAcrVehicle',
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json'
            success: function (data) {
                 console.log(data);
            },
            data: parameter
      });

您忘記了方法中的responseBody

@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String getAll(@RequestBody ObjectNode json) {
       System.out.println(json);
    return json.get("vehicle").asText();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM