簡體   English   中英

jQuery的AJAX調用過程中的問題

[英]c# - Problems during AJAX call with Jquery

晚上好,我正在嘗試在C#頁面中進行AJAX調用,並且正在處理一些問題。

我的jQuery代碼是:

$(document).ready(function () {
    $.ajax({
        type: "POST",
        url: "conteudo.aspx/GetNewPost",
        data: { ids: "<%=Request.QueryString["idconteudo"]%>" },
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
        },
        success: function (data) {
            alert("ok");
        }
    });
});

我的后台代碼是:

[WebMethod]
    public static string GetNewPost(string ids)
    {
        // some code
        return ids;
    }

有人知道發生了什么嗎? PS:錯誤是Internal Server Error

在此處輸入圖片說明

嘗試:

var idconteudo =“ <%= Request.QueryString [” idconteudo“]%>”;

...
...
網址:“ conteudo.aspx / GetNewPost”,
數據:“ {ids:\\”“ + idconteudo +” \\“”}“,
contentType:'application / json; charset = utf-8',
...
...

請使用以下代碼

因為您正在使用查詢字符串中的文本數據類型,所以可以將數據類型設置為text

$(document)
        .ready(function () {
            var q = "<%=Request.QueryString["idconteudo"]%>";
            alert(q);// just to check the value
            // assuming that you had passed query string value

            $.ajax({
                type: "POST",
                url: "conteudo.aspx/GetNewPost",
                data: { "ids": q },
                //contentType: 'application/json; charset=utf-8',
                dataType: 'text',// data type should be text
                error: function(XMLHttpRequest, textStatus, errorThrown) {
                    alert("Request: " +
                        XMLHttpRequest.toString() +
                        "\n\nStatus: " +
                        textStatus +
                        "\n\nError: " +
                        errorThrown);
                },
                success: function(data) {
                    alert("ok");
                }
            });
        });

編輯1 :如果Web方法位於ASPX頁面上,則應使用以下代碼,以便以Json格式獲取結果

$(document)
        .ready(function () {
            var q = "<%=Request.QueryString["idconteudo"]%>";
            //alert(q);
            // just to check the value
            // assuming that you had passed query string value

            $.ajax({
                type: "POST",
                url: "conteudo.aspx/GetNewPost",
                data: '{ids: "' + q + '" }',
                contentType: 'application/json; charset=utf-8',
                dataType: 'json',
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Request: " +
                        XMLHttpRequest.toString() +
                        "\n\nStatus: " +
                        textStatus +
                        "\n\nError: " +
                        errorThrown);
                },
                success: function (result) {
                    alert("ok" + result.d);
                }
            });
        });

從您提供給我們的帖子中,我發現有兩件事是不正確的,另一件事可能是您的問題中尚未發布的,但實際上這是您的真實資料。

1)您的data寫錯了。 它應該是:

$(document).ready(function () {
    var test = "<%=Request.QueryString["idconteudo"]%>";
    $.ajax({
        type: "POST",
        url: "conteudo.aspx/GetNewPost",
        data: { 'ids' : test }, // the ids needs to have quotes to be correct syntax
        dataType: 'text',
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert("Request: " + XMLHttpRequest.toString() + "\n\nStatus: " + textStatus + "\n\nError: " + errorThrown);
        },
        success: function (data) {
            alert("ok");
        }
    });
});

2)您說這是POST但您的方法未使用[HttpPost]注釋修飾。

3)您的dataType設置為'json'但是您的方法返回一個string ..所以'json'應該更改為'text'

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM