在javascript中调用ajax函数

在javascript中调用ajax函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我想在javascript中调用Ajax,但它给出了CallPageMethod未定义错误。如何定义它?我是阿贾克斯的新手。你能帮我吗 <script type="text/javascript"> function ValidateDelete() { var result = CallPageMethod("IsLangExists", success, fail); if (result == true) {

我想在javascript中调用Ajax,但它给出了CallPageMethod未定义错误。如何定义它?我是阿贾克斯的新手。你能帮我吗

<script type="text/javascript">    
    function ValidateDelete() {
        var result = CallPageMethod("IsLangExists", success, fail);

        if (result == true) { 
            return confirm('Do you want to continue ?')
        }
        else alert('You can not delete this record');
    }

    function success(response) {
        //alert(response.d);
    }

    function fail(response) {
        //alert("An error occurred.");
    }
</script>
<asp:GridView ID="grdList" OnRowCommand="grdList_RowCommand">
    <Columns>
        <asp:BoundField DataField="LangId" HeaderText="LangId" Visible="false" />            
        <asp:TemplateField HeaderText="Delete">
               <ItemTemplate>
                    <asp:ImageButton ID="imgBtnDelete" runat="server" CommandName="_Delete" CommandArgument='<%#Eval("LangId")%>' ImageUrl="~/Image/delete_icon.gif" OnClientClick="return ValidateDelete();"
                            ToolTip="Delete" />
              </ItemTemplate>
        </asp:TemplateField>
    </Columns>           
</asp:GridView>
你的名字在哪里

function CallPageMethod(methodName, onSuccess, onFail) {
    var args = '';
    var l = arguments.length;
    if (l > 3) {
        for (var i = 3; i < l - 1; i += 2) {
            if (args.length != 0) args += ',';
            args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"';
        }
    }
    var loc = window.location.href;
    loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "default.aspx" : loc;
    $.ajax({
        type: "POST",
        url: loc + "/" + methodName,
        data: "{" + args + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: onSuccess,
        fail: onFail
    });
}
以下是它的整体外观:

<script type="text/javascript">

    function CallPageMethod(methodName, onSuccess, onFail) {
        var args = '';
        var l = arguments.length;
        if (l > 3) {
            for (var i = 3; i < l - 1; i += 2) {
                if (args.length != 0) args += ',';
                args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"';
            }
        }
        var loc = window.location.href;
        loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "default.aspx" : loc;
        $.ajax({
            type: "POST",
            url: loc + "/" + methodName,
            data: "{" + args + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: onSuccess,
            fail: onFail
        });
    }  

    function ValidateDelete() {
        CallPageMethod("IsLangExists", success, fail);
    }

    function success(response) {
        if (response.d) { 
            return confirm('Do you want to continue ?');
        }

        alert('You can not delete this record');
    }

    function fail(response) {
        //alert("An error occurred.");
    }

</script>
<asp:GridView ID="grdList" OnRowCommand="grdList_RowCommand">
    <Columns>
        <asp:BoundField DataField="LangId" HeaderText="LangId" Visible="false" />            
        <asp:TemplateField HeaderText="Delete">
               <ItemTemplate>
                    <asp:ImageButton ID="imgBtnDelete" runat="server" CommandName="_Delete" CommandArgument='<%#Eval("LangId")%>'
                            ImageUrl="~/Image/delete_icon.gif" OnClientClick="return ValidateDelete();"
                            ToolTip="Delete" />
              </ItemTemplate>
        </asp:TemplateField>
    </Columns>           
</asp:GridView>
你的名字在哪里

function CallPageMethod(methodName, onSuccess, onFail) {
    var args = '';
    var l = arguments.length;
    if (l > 3) {
        for (var i = 3; i < l - 1; i += 2) {
            if (args.length != 0) args += ',';
            args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"';
        }
    }
    var loc = window.location.href;
    loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "default.aspx" : loc;
    $.ajax({
        type: "POST",
        url: loc + "/" + methodName,
        data: "{" + args + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: onSuccess,
        fail: onFail
    });
}
以下是它的整体外观:

<script type="text/javascript">

    function CallPageMethod(methodName, onSuccess, onFail) {
        var args = '';
        var l = arguments.length;
        if (l > 3) {
            for (var i = 3; i < l - 1; i += 2) {
                if (args.length != 0) args += ',';
                args += '"' + arguments[i] + '":"' + arguments[i + 1] + '"';
            }
        }
        var loc = window.location.href;
        loc = (loc.substr(loc.length - 1, 1) == "/") ? loc + "default.aspx" : loc;
        $.ajax({
            type: "POST",
            url: loc + "/" + methodName,
            data: "{" + args + "}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: onSuccess,
            fail: onFail
        });
    }  

    function ValidateDelete() {
        CallPageMethod("IsLangExists", success, fail);
    }

    function success(response) {
        if (response.d) { 
            return confirm('Do you want to continue ?');
        }

        alert('You can not delete this record');
    }

    function fail(response) {
        //alert("An error occurred.");
    }

</script>
<asp:GridView ID="grdList" OnRowCommand="grdList_RowCommand">
    <Columns>
        <asp:BoundField DataField="LangId" HeaderText="LangId" Visible="false" />            
        <asp:TemplateField HeaderText="Delete">
               <ItemTemplate>
                    <asp:ImageButton ID="imgBtnDelete" runat="server" CommandName="_Delete" CommandArgument='<%#Eval("LangId")%>'
                            ImageUrl="~/Image/delete_icon.gif" OnClientClick="return ValidateDelete();"
                            ToolTip="Delete" />
              </ItemTemplate>
        </asp:TemplateField>
    </Columns>           
</asp:GridView>

我刚刚添加了这个函数,但仍然会出现相同的错误。这取决于你在页面中添加它的位置。让我更新我的答案,向您展示完整的示例。谢谢您的回答。”“结果”值仍未定义。我调试了代码。IsLangExists方法返回true。这是因为CallPageMethod是一个异步函数,因为$.ajax会立即返回。您需要在success函数中检查服务器端函数的返回值。我将再次更新我的答案,以向您展示如何完成它。@baros:请看一下这个答案,它解释了同步代码和异步代码之间的区别。我刚刚添加了这个函数,但它仍然给出相同的错误。这取决于您在页面中添加它的位置。让我更新我的答案,向您展示完整的示例。谢谢您的回答。”“结果”值仍未定义。我调试了代码。IsLangExists方法返回true。这是因为CallPageMethod是一个异步函数,因为$.ajax会立即返回。您需要在success函数中检查服务器端函数的返回值。我将再次更新我的答案,向您展示如何做到这一点。@baros:看看这个答案,它解释了同步代码和异步代码之间的区别。