Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 400错误请求或Ajax post调用中415不支持的媒体类型_Jquery_Ajax_Spring - Fatal编程技术网

Jquery 400错误请求或Ajax post调用中415不支持的媒体类型

Jquery 400错误请求或Ajax post调用中415不支持的媒体类型,jquery,ajax,spring,Jquery,Ajax,Spring,我在春季创建了一个PostREST控制器。我想通过ajax调用调用这个控制器 @RequestMapping(value = "/getAdzAcrVehicle") @RestController("AdzoneAcrVehicle") public class AdzoneAcrVehicleController { private static Logger LOG = Logger.getLogger(AdzoneAcrVehicleController.class.getName()

我在春季创建了一个PostREST控制器。我想通过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();
}
}
我试图使用下面提供的所有解决方案调用rest控制器,但我收到400个错误请求或415个不支持的媒体类型错误

(一)

(二)


您忘记了方法中的responseBody

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

由于它是
@RestController
,因此不需要
@ResponseBody

您可以指定内容类型

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。但是我的浏览器控制台没有收到任何响应……我已经更新了对代码的ajax调用,现在我的控制器被调用了,它返回了值。但是,我的浏览器控制台没有收到任何响应。现在有什么新问题吗???为什么这样成功:函数(数据){console.log(数据);}没有执行???更改字符串的返回类型,因为它需要json结果。问题似乎出在
返回类型中,因为它是纯文本。尝试以JSON格式返回
{key:value}
格式。
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String getAll(@RequestBody ObjectNode json) {
       System.out.println(json);
    return json.get("vehicle").asText();
}
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
      });