0

我正在处理一些遗留代码,这些代码用于通过用户名/密码检查对 Web 应用程序的用户进行身份验证。该代码包含在标准 ASPX 页面中(是的,我知道),并且当请求该页面时,它要么返回状态 404 以指示身份验证失败,要么在 ASPX 页面上填充文字(如果一切正常)。

它是一个标准的 JQueryajax调用:

    $("#btnSWSignInPin").click(function () {
    $.ajax({
        url: "/Security/Validate.aspx",
        type: "GET",
        data: "Rnd=" + Math.random() + "&Identifier=" + $(".inpIdentifier").val() + "&Pin=" + $("#inpSWPin").val(),
        success: function () {
            $("#divSessionLogin").jqmHide();
            WarnInFuture();
            DoChecks = true;
        },
        error: function () {
            ShowLogin("The password you entered was incorrect. Please try again.");
        }
    });
    $("#inpSWPin").val("");

    return false;
});

这个调用的 .NET 代码运行良好,我可以成功地单步执行它而在 VS 中没有问题。我在 Safari、Firefox 和 IE9 中进行了广泛的测试,除了后者在 OSX 和 Windows 上进行了广泛测试,并且它按预期执行。然而,在 Chrome(最新版本)中,成功函数从未执行,javascript 似乎认为从浏览器返回状态 200 以外的内容,尽管Fiddler在响应标头中显示它肯定是 200。

谁能建议我可以检查什么以尝试理解和纠正这种行为?

4

2 回答 2

0

异步:假

当 async 设置为 true 时,Google Chrome 似乎存在触发成功的问题。

于 2012-10-29T06:39:25.230 回答
0

我认为这可能是一个 url 解析问题,请尝试以这种方式提供参数:

data = {
    "key_1": "value_1",
    "key_2": false,
    "key_4": 123
};
于 2012-09-17T12:16:22.350 回答