jQuery.ajax () sendet Postanfragen als Verchromerweiterung
-
25-09-2019 - |
Frage
Ich erstelle eine kleine Chrome -Erweiterung, die Nachrichten über eine Post -HTTP -Anforderung an einen Server in meinem Unternehmensnetzwerk senden muss, und ich verwende JQuery 1.4.1, um die Entwicklung des JavaScript -Teils zu beschleunigen.
Ich habe diesen Code, um die Anfrage zu senden:
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");
}
});
}
Die auf diese Weise durchgeführte Anfrage schlägt fehl. Im Chrome -Protokoll sehe ich, dass der Server mit einem HTTP -Status 400 und dem Text "diese Methoden erfordert Post" antwortet.
Wenn ich oben in den Code wechsle:
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)
});
}
Alles funktioniert gut, der HTTP -Status ist 200 und ich kann sehen, dass die von mir gesendeten Daten korrekt gespeichert sind.
Ich muss die vollständige $ .ajax () -Methode verwenden, da ich im Falle eines Erfolgs oder eines Misserfolgs etwas Arbeit leisten muss, und andere, wenn die Anfrage abgeschlossen ist, so ist $ .post () nicht ausreichend.
Mache ich etwas falsch, wenn ich $ .ajax () nennt, oder es gibt ein Problem, vielleicht weil ich im Xontext einer Chrome -Erweiterung bin?
Vielen Dank
Lösung
Ich glaube das $ .ajax () Die Funktion nimmt eine Option "Typ" und keine "Methode" -Option.
Der Standardtyp ist erhalten.