我正在构建一个小型的镀铬扩展名,必须通过http Post post ttp请求将消息发送到我的公司网络中的服务器,并且我正在使用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响应,并带有文本“此方法需要帖子”。

如果我更改上面的代码:

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?

谢谢

有帮助吗?

解决方案

我相信 $ .ajax() 功能采用“类型”选项,而不是“方法”选项。

默认类型是获取的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top