Q:

Spring MVC handling AJAX request

I've got problem with handling Spring controller and AJAX request.  I need to use JSON object as parameter, but without @RequestBody annotation I'm receiving nulls, code example:
@RequestMapping(value="/meals/new", method=RequestMethod. GET,
        produces = MediaType. APPLICATION_JSON_VALUE, consumes = MediaType. APPLICATION_JSON_VALUE)
@ResponseBody
public List<Item> autocomplete(String autocomplete) {
    System.out.println(autocomplete);
        return null;
}

The problem is that autocomplete variable is null, not the return. 
When I use @RequestBody method isn't called at all and I get status code 400, controller example:
@RequestMapping(value="/meals/new", method=RequestMethod. GET,
        produces = MediaType. APPLICATION_JSON_VALUE, consumes = MediaType. APPLICATION_JSON_VALUE)
@ResponseBody
public List<Item> autocomplete(@RequestBody Autocomplete autocomplete) {
    System.out.println(autocomplete.getValue());
        return null;
}

Here's Autocomplete model:
@JsonInclude(JsonInclude. Include. NON_NULL)
@Generated("org.jsonschema2pojo")
@JsonPropertyOrder({
    "value"
 })
 public class Autocomplete {

@JsonProperty("value")
private String value;
@JsonIgnore
private Map<String, Object> additionalProperties = new HashMap<String, Object>();

/**
 *
 * @return
 * The value
 */
@JsonProperty("value")
public String getValue() {
    return value;
}

/**
 *
 * @param value
 * The value
 */
@JsonProperty("value")
public void setValue(String value) {
    this.value = value;
}

@JsonAnyGetter
public Map<String, Object> getAdditionalProperties() {
    return this.additionalProperties;
}

@JsonAnySetter
public void setAdditionalProperty(String name, Object value) {
    this.additionalProperties.put(name, value);
}

}
and AJAX call:
 $.ajax({
                url: $("#newMealForm").attr("action"),
                data: JSON.stringify({
                    "value": apn
                }),
                type: "GET",
                beforeSend: function (xhr) {
                    xhr.setRequestHeader("Accept", "application/json");
                    xhr.setRequestHeader("Content-Type", "application/json");
                    xhr.setRequestHeader
                },
                success: function (item) {
                    console.log(item.length);
                    availablePTags = item;
                }
            });

A:

Changed method type to POST and it fixed the problem.