我正在构建一个小型 Chrome 扩展,它必须通过 POST http 请求将消息发送到我公司网络中的服务器,并且我正在使用 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() 时做错了什么,还是存在某种问题,可能是因为我在 Chrome 扩展的 xontext 中?
谢谢