Я создаю небольшое расширение Chrome, которое должно отправлять сообщения через HTTP-запрос POST на сервер в сети моей компании, и я использую jQuery 1.4.1 для ускорения разработки части javascript.
У меня есть этот код для отправки запроса:
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");
}
});
}
Запрос, выполненный таким образом, не выполняется, в журнале Chrome я вижу, что сервер отвечает с http-статусом 400 и текстом «Этот метод требует POST».
Если я перейду на код выше с этим:
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)
});
}
все работает нормально, статус http 200 и на стороне сервера я вижу, что отправленные мной данные правильно сохранены.
Мне нужно использовать полный метод $ .ajax (), потому что мне нужно выполнить некоторую работу в случае успеха или неудачи, а другую - после завершения запроса, поэтому $ .post () недостаточно.
Я делаю что-то неправильно, вызывая $ .ajax (), или есть какая-то проблема, возможно, потому что я нахожусь в xontext расширения Chrome?
Спасибо