jQuery.post在IE9上作为HTTP GET发送

jQuery.post在IE9上作为HTTP GET发送,jquery,internet-explorer-9,Jquery,Internet Explorer 9,我使用jquery1.8.2通过jQuery的ajaxpost调用一些后端服务器api。后端服务器和网页都在同一个域上 在我的js文件中,我只是调用$.post('/createAccount',data,function(e){alert(e);}) 在Fiddler中,此请求在IE9中作为GET发送 GET http://[redacted]/createAccount HTTP/1.1 Accept: */* Origin: [redacted] Accept-Language: en-U

我使用jquery1.8.2通过jQuery的ajaxpost调用一些后端服务器api。后端服务器和网页都在同一个域上

在我的js文件中,我只是调用
$.post('/createAccount',data,function(e){alert(e);})

在Fiddler中,此请求在IE9中作为GET发送

GET http://[redacted]/createAccount HTTP/1.1
Accept: */*
Origin: [redacted]
Accept-Language: en-US
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Host: [redacted]
Connection: Keep-Alive
Pragma: no-cache
使用Chrome(最新版本)的同一页面在Fiddler中返回以下内容:

POST http://[redacted]/createAccount HTTP/1.1
Host: [redacted]
Connection: keep-alive
Content-Length: 103
Origin: http://[redacted]
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*
Referer: http://[redacted]/builder?token=[redacted]
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

email=test123&token=[redacted]&company=tokentest1
下面是使用$.ajax而不是$.post的代码(同一问题):


这是一个令人沮丧的时刻。我还有一些代码可以回退到MSFT的XDomainRequest,在这些代码中,它强制所有请求获取,而不是从jQuery选项对象中提取请求类型。

为了进行调试,您可以切换到使用$.ajax并比较结果吗?我可以(实际上最初的调用是$.ajax({…,键入:'POST')).wrt调试有什么特别的好处吗?因为$.post转发到$.ajax,它消除了$.post的原因。我不确定这是否有帮助,但是如果您设置
contentType:'application/json;charset=UTF-8'
,会怎么样?同样的结果?尝试删除
缓存:'false'
        $.ajax({
            url : '/createAccount',
            type : 'POST',
            data : obj,
            dataType : 'json',
            cache: 'false',
            success : function(data) {
                if(data.status === 'ok') {

                } else {
                    alert('error');
                }
            }
        });