即使对服务的调用成功,XmlHttpRequest状态为0

时间:2013-07-04 12:24:15

标签: javascript jquery html5 wcf xmlhttprequest

经过Wcf Service(JS),经过长时间的尝试后,我致电Jquery

服务电话如下:

function CallService() {   
    var request = { userName: "aaa", password: "123" };
    var jsondata = JSON.stringify(request);   
    $.ajax({
        type: "POST", //GET or POST or PUT or DELETE verb
        url: "http://localhost:xxxx/Service1.svc/GetUser", // Location of the service
        data: jsondata, //Data sent to server
        contentType: "application/json; charset=utf-8", // content type sent to server
        dataType: "json", //Expected data format from server
        processdata: true, //True or False
        crossDomain: true, //True or False
        success: function (result) {
            alert('success');
        },
        complete: function () {
            alert('completed');
        },
        error: function (xhr, status, message) {
            alert('error with status - ' + xhr.status);
        }
    });  
}

我将BreakPoint放在服务中的GetUser函数中,当我调用函数CallService时,我转到BreakPoint of Service(这意味着它可以工作!)。

服务功能运行良好并返回正确的数据,但是对于Jquery,我得到了状态0 的错误功能。

此外,在控制台中我看到一个红色错误:(通常不被理解为错误)

POST http://localhost:xxx/Service1.svc/GetUser  

可能是什么问题?

2 个答案:

答案 0 :(得分:1)

可能是您正在制作跨域请求。请注意,具有不同端口的相同主机名称被视为不同的域。例如:http://localhost:20http://localhost:40被视为不同的域。

在您的情况下,可能是您的浏览器支持CORS ,因此仍会发送对其他域的请求。这就是为什么当您在服务器端调试时看到它有效,但是当浏览器从服务器收到响应时,响应将被丢弃,并且由于响应中缺少Access-Control-Allow-Origin标头或者{{1}而引发错误标题,但其值不同于您的域。

答案 1 :(得分:0)

我的问题是在User对象中我有DateTime

当我将其转为String时,工作