无法从 Internet Explorer 11 (CORS) 消费跨域 ASMX Web 服务。

问题描述 投票:0回答:1

我有一个ASMX网络服务,我可以从jQuery中获取。$ajax: 我可以从Chrome浏览器上做,但不能从Internet Explorer 11上做。

我读到了关于CORS限制的文章,我在服务上禁用了它,通过在 web.config:

<add name="Access-Control-Allow-Origin" value="*"/>
<add name="Access-Control-Allow-Credentials" value="true" />
<add name="Access-Control-Allow-Methods" value="ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH, PUT, REPORT, SEARCH, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL" />
<add name="Access-Control-Allow-Headers" value="Overwrite, Destination, Content-Type, Depth, User-Agent, Translate, Range, Content-Range, Timeout, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Cache-Control, Location, Lock-Token, If" />
<add name="Access-Control-Expose-Headers" value="DAV, content-length, Allow" />
<add name="Access-Control-Max-Age" value="3600" />

一旦添加了配置,跨域访问就开始在谷歌浏览器上工作,我可以从网络服务中获得结果。但在Internet Explorer浏览器上继续出现同样的问题(该过程将进入ajax调用的错误部分,并显示 "undefined "信息)。

还检查了Internet工具>安全>自定义级别>杂项>跨域访问数据源>启用Internet Explorer选项。

EDIT: 这是客户端的javascript代码。

    function GetSampleText() {
        $.ajax({
            url: 'http://MyWebServices/MyWebService.asmx/GetSampleText',
            type: "POST",
            contentType: "application/json; charset=utf-8",
            data: '{}',
            success: function (result) {
                $("#txtResult").val("OK: " + result.d);
            },
            error: function (request, status, error) {
                $("#txtResult").val("ERROR: " + request.responseText);
            }
            //error: function (result) {
            //    $("#txtResult").val("ERROR: " + result.d);
            //}
        }); 
    }

我可以用不同的代码得到不同的信息

error: function (request, status, error) {
    $("#txtResult").val("ERROR: " + request.responseText);
}

I'm getting: NO TRANSPORT

我缺少什么才能让它在Internet Explorer中工作?

jquery ajax web-services asmx
1个回答
0
投票

对于那些有同样问题的用户,我可以通过在所有ajax调用前添加这一行来解决。

$.support.cors = true; // this must precede $.ajax({}) configuration

请注意,

© www.soinside.com 2019 - 2024. All rights reserved.