相关疑难解决方法(0)

在IE8/9中使用jQuery和XDomainRequest的CORS

更新:我强烈建议不要在XDomainRequest中投入任何时间,因为它是一个非常糟糕的实现,有很多限制.它基本上只适用于对非ssl服务器的GET请求,所以你不妨使用jsonp或其他什么.


我使用CORS来调用跨域API,但Internet Explorer提出了问题.通过XDomainRequest对象在IE8和IE9中应该可以使用CORS ,但是我无法使用它.

JQuery 拒绝为XDomainRequest提供本机支持,但是建议使用几个jQuery插件来添加此支持.本主题提出了两个这样的插件:jQuery.XDomainRequest.jsxdr.js,已经报告可以使用.Afaik,插件应该自动覆盖行为jQuery.ajax.我在这里找到了另一个插件.

我把一些演示页面与相应的插件jQuery.XDomainRequest以及xdrjquery.ie.cors放在一起,它们对启用CORS的服务器执行ajax请求.这些页面在Chrome和Firefox中运行,但IE8/9会立即抛出权限被拒绝错误(甚至在发出请求之前).这个MSDN帖子建议添加另一个处理程序,xhr.onprogress = function() {};但我尝试了这个,它也没有工作.

什么线索我做错了什么?我现在也使用MS8虚拟服务器测试IE8,但它有完全相同的问题.

编辑:好的所以我发现问题的一部分是我通过HTTPS使用POST.显然XDomainRequest不允许通过HTTPS使用CORS.我可以切换到HTTP,但我真的需要POST.

编辑2:本故事结束时,请在github上查看此问题.事实证明,当使用HTTP POST时,xDomainRequest只能将请求体(参数)编码为text/plain.这几乎使它变得毫无价值,因为每个人都使用application/x-www-form-urlencodedmultipart/form-data.

jquery cors internet-explorer-9 xdomainrequest

62
推荐指数
2
解决办法
6万
查看次数

跨域ajax请求

我想从跨域url获取html响应页面.

为此,我使用ajax请求,因为,

 $.ajax({
            type: 'GET',
            url: "http://wcidevapps.com/salescentral/idisk/0001000383/iDisk",
            dataType: "jsonp",
            success: function (response) {
                $(response).find('li a').each(function () {
                    listHref.push($(this).attr('href'));
                });

            }
        });
Run Code Online (Sandbox Code Playgroud)

但在请求后它没有回复任何结果.

html ajax jquery asp.net-ajax

12
推荐指数
2
解决办法
7万
查看次数