在跨域调用中在Firefox和Chrome中调用$ .Ajax时出现问题

时间:2012-03-21 13:03:59

标签: jquery asp.net ajax firefox google-chrome

我在网址中有一些asmx网络服务(例如example.com/Entities/WebServices,假设example.com是我的域名)。这样做的目的是能够访问来自所有应用程序的员工等域数据。因此,按照获取员工数据的示例,我使用方法example.com/Entities/WebServices/EmployeeWs.asmx/GetAll

当我尝试使用JQuery.Ajax从我的localhost获取员工数据时,它在IE8上工作正常。但是当使用Firefox时,$ .ajax调用会将我发送到成功函数,但是会显示一条空消息(还检查了来自firebug的响应,它是200 OK - 0byte)

我把jQuery.support.cors = true;但它在Firefox或Chrome中没有帮助。

我还尝试在example.com/TestProject中发布测试应用,但结果是一样的。它只适用于IE。

有谁知道错误的原因是什么?

使用IE8,Firefox 8.0.1,Chrome 11.0.6。 JQuery 1.7.1

提前致谢。

var requestedUrl = "http://example.com/Entities/WebServices/EmployeeWs.asmx/GetAll";

jQuery.support.cors = true;

$.ajax({
    type: "POST",
    contentType: "application/json",
    url: requestedUrl,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",

    success:

    function(result) {

        alert("ok. " + result);

    },

    error:

    function(xhr) {

        alert("err. " + xhr.responseText);

    }

});

1 个答案:

答案 0 :(得分:-1)

端口/协议是一样的吗?如果您从http://example.com拨打https://example.com,则可能会出现此错误。

编辑:看看那里。我自己没有测试过。 How do jQuery do its cross-domain ajax calls and how can I replicate em with mootools