0

我在尝试从 jquery 使用简单的 WCF 服务时遇到特殊问题。请看下面的代码:

$(document).ready(function () { // Initialize the carousel on the header part of the page $("#myCarousel").carousel({ interval: 2000 });

// The handler for the submit button (login form)
$("#submit").click(function () {
    var sendData = '{"username": "' + 
                     $("#usernameTB").val() + 
                   '", "password": "' + 
                     CryptoJS.MD5($("#passwordTB").val()) + 
                   '"}';

    $.ajax("Services/LoginUser.svc/Login", {
        cache: false,
        type: "POST",
        data: sendData,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        processData: true,
        complete: ServiceCompleted
    });
});

}); function ServiceCompleted(data) { alert("Response: " + data.responseText); }

当我使用 IE 中的这段代码时,它就像一个魅力,即调用被执行并返回我所期望的,请参阅下面的请求/响应的提琴手转储:

POST http://localhost/CanDoIT/Services/LoginUser.svc/Login HTTP/1.1
接受:应用程序/json、文本/javascript、*/*;q=0.01
内容类型:应用程序/json;字符集=utf-8
X-Requested-With: XMLHttpRequest
参考:http://localhost/CanDoIT/default.htm
接受语言:nl-NL,en-US;q=0.5
接受编码:gzip,放气
用户代理:Mozilla/5.0(兼容;MSIE 9.0;Windows NT 6.1;WOW64;Trident/5.0)
主机:本地主机
内容长度:64
连接:保持活动
Pragma:无缓存

{“用户名”:“”,“密码”:“d41d8cd98f00b204e9800998ecf8427e”}

HTTP/1.1 200 正常
缓存控制:私有
内容长度:10
内容类型:应用程序/json;字符集=utf-8
服务器:Microsoft-IIS/7.5
X-AspNet-版本:4.0.30319
X-Powered-By: ASP.NET
日期:2012 年 10 月 29 日星期一 09:31:15 GMT

{“d”:空}

如果我使用 Chrome 执行相同操作,我会收到以下请求/响应转储:

POST http://localhost/CanDoIT/Services/LoginUser.svc/Login HTTP/1.1
主机:本地主机
连接:保持活动
内容长度:64
来源:http://localhost
X-Requested-With: XMLHttpRequest
用户代理:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
内容类型:应用程序/json;字符集=UTF-8
接受:应用程序/json、文本/javascript、*/*;q=0.01
参考:http://localhost/CanDoIT/default.htm?
接受编码:gzip、deflate、sdch
接受语言:nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4
接受字符集:ISO-8859-1,utf-8;q=0.7,*;q=0.3

{“用户名”:“”,“密码”:“d41d8cd98f00b204e9800998ecf8427e”}

HTTP/1.1 200 正常
缓存控制:私有
内容长度:10
内容类型:应用程序/json;字符集=utf-8
服务器:Microsoft-IIS/7.5
X-AspNet-版本:4.0.30319
X-Powered-By: ASP.NET
日期:2012 年 10 月 29 日星期一 09:30:27 GMT

{“d”:空}

现在,警报没有向我显示 {"d":null} 文本。

有谁知道阻止我使用 responseText 的区别是什么?

4

1 回答 1

0

经过一番谷歌搜索后,我刚刚找到了解决问题的方法...

看来我的表单上提交按钮的单击处理程序必须返回 false 才能使其正常工作。

我不知道为什么,但它的工作...

于 2012-10-29T12:52:37.237 回答