jQuery.AJAX () envía solicitudes de publicación como Get en una extensión de Chrome
-
25-09-2019 - |
Pregunta
Estoy construyendo una pequeña extensión de Chrome que debe enviar mensajes a través de una solicitud POST HTTP a un servidor en la red de mi empresa, y estoy usando JQuery 1.4.1 para acelerar el desarrollo de la parte JavaScript.
Tengo este código para enviar la solicitud:
function send() {
$.ajax({
url: "http://mycompany.com/update",
method: "POST",
data: {status: "sometest", in_reply_to_status_id: "anId"},
success: function(data, textStatus) {
console.log("success");
console.log(data);
console.log(textStatus);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log("error");
console.log(XMLHttpRequest);
console.log(textStatus);
console.log(errorThrown);
},
complete: function(XMLHttpRequest, textStatus) {
console.log("complete");
}
});
}
La solicitud realizada de esta manera falla, en el registro de Chrome veo que el servidor responde con un estado HTTP 400 y con el texto "Estos métodos requieren publicación".
Si cambio al código anterior con esto:
function send() {
$.post("http://sunshine.emerasoft.com/statusnet/api/statuses/update.xml", {status: "sometext", in_reply_to_status_id: "anId"}, function(data) {
console.log(data)
});
}
Todo funciona bien, el estado HTTP es 200 y el lado del servidor puedo ver que los datos que envié se guardan correctamente.
Necesito usar el método $ .AJAX () completo porque necesito hacer algo de trabajo en caso de éxito o fracaso, y algún otro cuando la solicitud está completa, por lo que $ .post () no es suficiente.
¿Estoy haciendo algo mal llamando $ .AJAX (), o hay un problema de algún tipo, tal vez porque estoy en el xontexo de una extensión de Chrome?
Gracias
Solución
Creo que el $ .AJAX () La función toma una opción de 'tipo', no una opción de 'método'.
El tipo predeterminado es Get.