¿Cómo puedo evitar que Spring MVC realice una redirección?

Quiero manejar una solicitud AJAX que actualiza una entidad. Realmente no lo necesito para devolver nada. El problema es que Spring MVC insiste en enviar un redireccionamiento a la misma URL (aparentemente haciendo su tarea posterior a la redirección), que el navegador sigue obedientemente.

¿Cómo puedo hacer que un método de controlador Spring MVC simplemente complete y devuelva algo sin enviar una redirección? La búsqueda en la web solo lleva a discusiones innumerables sobre cómo hacer una redirección, no cómo evitarla.

Es una solicitud PUT parahttp://localhost:9090/pex/api/testrun/f0a80b46-84b1-462a-af47-d1eadd779f59e con estos encabezados:

Host: localhost:9090
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
Accept: */*
Accept-Language: de,en-US;q=0.7,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Length: 20
Content-Type: application/json
Referer: http://localhost:9090/pex/api/testrun/f0a80b46-84b1-462a-af47-d1eadd779f59e/visualizations/common-api?slas=lp,internal,external
X-Requested-With: XMLHttpRequest
Connection: keep-alive
Authorization: Basic xxxx

La respuesta tiene el código de estado "302 encontrado", sin contenido corporal y estos encabezados:

Content-Language: "de"
Content-Length: "0"
Location: "http://localhost:9090/pex/api/testrun/f0a80b46-84b1-462a-af47-d1eadd779f59e"
Server: "Jetty(6.1.10)"
access-control-allow-origin: "*"

Aquí está el código del lado del servidor:

@RequestMapping(value = "/api/testrun/{testrunId}", method = RequestMethod.PUT, consumes = "application/json")
@ResponseBody
public Testrun updateOverview(@PathVariable("testrunId") final String testrunId, @RequestBody final String body) {
    return testrunService.updateOverview(testrunId, body);
}

Aquí está el código Javascript que hace la llamada AJAX:

$(document).ready(function() {
    $("#update_name_form").submit(function (e) {
        update_testrun($("#name"));
        return false;
    });
}
function update_testrun(element) {
    var name = element.attr('name');
    var new_value = element.val().trim();
    var data = {};
    data[name] = new_value;
    $.ajax({url: config.urls.api.testrun + testrun.id,
            type: "PUT",
            contentType: "application/json",
            data: JSON.stringify(data),
            error: function(jqXHR, textStatus, errorThrown) {
                    alert(errorThrown);
            },
            success: function (data, textStatus, jqXHR) {
                    testrun.overview[name] = new_value;
            }
    });
}

Respuestas a la pregunta(0)

Su respuesta a la pregunta