XDR 在 IE 8 和 9 中返回"access denied"后



我正在从y.x.com向x.com发出ajax请求,除了IE 8和9之外,我在大多数浏览器中都能正常工作,在那里我会收到拒绝访问错误。这是我的代码

 if (!empty && radio_checked) {
        $(".modal-content").animate({
            height: "250px"
        }), 500, function () { };
        $.support.cors = true;
        var url = "localhost:5603/ajax/post/sell-exm/?" //localhost for testing locally

        if ($.browser.msie && window.XDomainRequest) {
            var xdr = new XDomainRequest();
            xdr.open("post", url+data); // *** ERROR HERE ***
            xdr.send(data); 
        } else {
            $.ajax({
                type: "POST",
                url: url,
                data: data,
                datatype: "jsonp",
                success: function(r){
                    //nothing needed here
                }
            });
        }
 }

同样,这适用于除IE8&9.此外,我在web.config上有一个Access Control Allow Origin自定义标头。

我不太确定XDR是否就是这样工作的,但出于某种原因,它在我的服务器上是这样工作的。但它看起来像是"打开"触发了来自.Net后端的ajax响应,并阻止了发送通过(这听起来不对,但在Fiddler中就是这样)。因此,没有发布任何表单数据,这导致了所有奇怪的事情的发生。

为了解决这个问题,我将post改为get,并在我的.Net Ajax控制器中添加了一个子句,它说if Request.Form.AllKeys.Length = 0,获取查询字符串。

相关内容

  • 没有找到相关文章

最新更新