微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – jQuery.ajax()在Chrome扩展程序中将POST请求作为GET发送

我正在构建一个小的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",function(data) {
        console.log(data)
    }); 
}

一切正常,http状态为200,服务器端我可以看到我发送的数据已正确保存.

我需要使用完整的$.ajax()方法,因为我需要在成功或失败的情况下做一些工作,而在请求完成时需要做其他工作,所以$.post()是不够的.
我是否在调用$.ajax()时出错了,或者存在某种问题,可能是因为我在Chrome扩展程序的xontext中?

谢谢

最佳答案
我相信$.ajax()函数采用’type’选项,而不是’method’选项.

认类型是GET.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐