adic26
adic26

Reputation: 1137

AJAX POST not functioning with jQuery 1.9.0 or greater

Here is my following code for using AJAX calling a static webmethod on ASPX side. It used to work with jQuery 1.2.0 , but I needed to update my jQuery 2.1.1 and now ajax code doesn't even execute as it the code never falls under 'Failure' section

Can somebody nudge me in the right direction please? I have a feeling that I maybe skipping over a reference with the newer version of jQuery?

            <%@ Register Assembly="System.Web.Ajax" Namespace="System.Web.UI" TagPrefix="asp" %>
<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="asp" %>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link href="../Design/jQueryCSS/bootstrap-select.css" rel="Stylesheet" type="text/css" />
    <script type="text/javascript" src="../Design/scripts/jquery-2.1.1.js"></script>
    <script  type="text/javascript" src="../Design/scripts/bootstrap-select.js"></script>
    <script type="text/javascript" src="../Design/scripts/bootstrap.js"></script>
    <link href="../Design/jQueryCSS/bootstrap.css" rel="Stylesheet" type="text/css" />
    <script src="../Design/scripts/jquery.columnfilters.js" type="text/javascript"></script>
    <script type="text/javascript" src="../Design/scripts/ToolBox.js"></script>


        <script type="text/javascript">
        $(document).ready(function () {
        var rtID = $('#<%=ddlRequestType.ClientID%>');
        //console.log(rtID[0].value);
        var temp = searchFields(rtID[0].value);
        console.log(temp);

        });

    function searchFields(rtID) {

        $.ajax({
            type: "POST",
            url: "Reports.aspx/Search",
            data: JSON.stringify({requestTypeID: rtID}),
            //data: 'requestTypeID: "' + rtID + '" }',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (response) {
                /*if (response.d == true) {
                    console.log(response.data);
                }*/
                alert("hi");
            },
            failure: function (response) {
                console.log(response.data);
            }
        });
 </script>

Error:

enter image description here

And Yes I did validate requestTypeID value :-)

Upvotes: 0

Views: 870

Answers (1)

Joce Pedno
Joce Pedno

Reputation: 334

Try to send a JSON object instead of a String:

$.ajax({
        type: "POST",
        url: "Reports.aspx/Search",
        data: {requestTypeID: rtID}, //Here
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response) {
            /*if (response.d == true) {
                console.log(response.data);
            }*/
            alert("hi");
        },
        failure: function (response) {
            console.log(response.data);
        }
    });

Upvotes: 1

Related Questions