XDR在IE 8&amp ;;中返回“拒绝访问” 9

时间:2013-06-20 16:06:27

标签: jquery internet-explorer xss

我正在从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
                }
            });
        }
 }

同样,这适用于除IE 8和IE之外的所有浏览器。 9.此外,我在web.config上有一个Access-Control-Allow-Origin自定义标头。

1 个答案:

答案 0 :(得分:0)

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

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