1

我在使用 jQuery (1.7.2) ajax 和 asp.net 时遇到了一些奇怪的问题。

在本地使用下面的代码时,这一切似乎都可以正常工作。ajax 触发良好,模态按预期弹出,div 向下滑动,我对结果非常满意。

但是,在我们的开发服务器上,我们遇到了一些奇怪的问题。我们开始点击错误函数。在错误函数中,返回文本不是我们的 JSON 时间戳,而是来自页面流中不同页面的 HTML。我们尝试过使用 .ajax 的参数,我们尝试过摆弄模态,我们尝试在我们的代码后面的方法中返回时间戳,我们尝试将我们的 dataType 更改为文本。这允许它触发模态,但是,Inf.innerHTML 最终只是在我们的页面流中显示了另一个页面的呈现。

我们花了很多时间尝试调试它,但我们仍然卡住了。任何想法将不胜感激。

jQuery:

$("#<%= Btn.ClientID %>").click(function() {
            $.ajax({
                async: true,
                type: "POST",
                url: "Page.aspx/Method",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(data) {
                    $("#Modal").modal({
                        closeClass: "Modal-Close",
                        escClose: false,
                        opacity: 35,
                        overlayCss: { backgroundColor: "#000" }
                    }); //end Modal
                    //timeStamp = data.d; //Timestamp elsewhere in the js
                }, //end success
                error: function(xhr, status, error) { alert("xhr: " + xhr.responseText + "\n\nstatus: " + status + "\n\nerror: " + error); }
            }); //end ajax
            return false;
        }); //end Btn.click

$(".Modal-Close").click(function() {
       ModalClose();
});

var timeStamp;

    function ModalClose() {
        var img = document.getElementById("imgP");
        var Inf = document.getElementById("Info");
        var Name = document.getElementById("<%=divName.ClientID %>").value;
        img.src = "difImg.png";
        Inf.innerHTML = "Sometext" + Name + ", MoreText.<br />" + timeStamp;
        var divO = document.getElementById("<%=divOut.ClientID %>");
        $(divO).slideDown();
    }

C# 页面代码隐藏

[WebMethod(EnableSession = true)]
public static string Method()
{
    // Various magic
    return "{\"d\":\"" + DateTime.Now.ToString("MMMM dd, yyyy h:mm tt") + "\"}";
}
4

0 回答 0