Я создаю маленькое расширение 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, и сторона сервера I видит, что данные, которые я отправил, правильно сохраняются.
Я должен использовать полный $ .ajax () метод, потому что я должен сделать некоторую работу в случае успешности или неуспешности и некоторого другого, когда запрос завершен, таким образом, $ .post () недостаточно.
Я делаю что-то не так, называя $ .ajax (), или существует проблема некоторого вида, возможно, потому что я нахожусь в xontext расширения Chrome?
Спасибо
Я считаю, что функция $. Ajax () принимает параметр типа, а не параметр метода.
Тип по умолчанию - GET.