1

私はasp.netとjQuery 1.6を使用しています

私の関数では、C# で記述されたサーバー側メソッドにデータ パラメーターとして html タグを渡す必要があります。私のデータベースでは、列には Blob データ型があります。
528b までは正常にデータを送信できますが、大きなデータを送信すると... サーバー側で送信できません。

小さなデータを渡すと動作し、行が挿入されます。しかし、約 17Kb のデータを渡すと、サーバー側には渡されず、jquery で未定義のエラーが表示されます。

以下は Ajax コードです。

$.ajax({
    type: "POST",
    url: "Post.aspx/savePost",
    data: "{Title:'" + Title + "',Html:'" + Html + "'}",
    contentType: "application/json",
    dataType: "json",
    success: function (data) {
        if (data == undefined) {
            alert("Error : 219");
        }
        else {
            alert(data.d);
        }
    },
    error: function (data) {
        if (data == undefined) {
            alert("Error : 465");
        }
        else {
            alert("Error : 468 " + data.d);
        }
    }
});

以下はC#コードです

[System.Web.Services.WebMethod]
public static string savePost(string Title,string Html)
{
    string retMsg = "Not Saved";
    Post bp = new Post();
    int count = 0;
    count = bp.mySavePost(Title,Html);
    if (count > 0)
    {
        retMsg = "Post Save Successfully.";
    }
    return retMsg;
}

protected int mySavePost(string Title, string Html)
{
    int count=0;
    try
    {
        string rawQuery = "INSERT INTO temp_posts (Title,HTML)"
                        + " VALUES(?Title,?HTML)";
        cmd = new MySqlCommand();
        cmd.CommandText = rawQuery;
        cmd.CommandType = System.Data.CommandType.Text;
        cmd.Parameters.Add("?Title", MySqlDbType.VarChar).Value = Title;
        cmd.Parameters.Add("?Html", MySqlDbType.Blob).Value = Html;
        count = c.insertData(cmd);
     }
     catch(Exception ex){}
 }

貴重な知識で私を導いてください。
ありがとう。

4

1 に答える 1

1

このスレッドのために最善を尽くしてくれたすべての人に感謝します。

最後に、先輩の助けを借りて、自分のコードに欠けている場所を見つけました。

C# で記述されたサーバー側メソッドにデータ パラメータとして html タグを渡すため、jQuery.ajax();データをエンコードする必要があります。

JavaScriptの関数を使用しescape()てエンコードしたので、機能しました。データはデータベースに送信されます。

var encodedHTML = escape(Html);         //here encoding Html.
$.ajax({  
    type: "POST",   
    url: "Post.aspx/savePost",  
    data: "{Title:'" + Title + "',Html:'" + encodedHTML + "'}",  
    contentType: "application/json",  
    dataType: "json",  
    success: function (data) {  
        if (data == undefined) {  
            alert("Error : 219");  
        }  
        else {  
            alert(data.d);  
        }  
    },  
    error: function (data) {  
        if (data == undefined) {  
            alert("Error : 465");  
        }  
        else {  
            alert("Error : 468 " + data.d);  
        }  
    }  
});  

みんな、ありがとう :)

于 2012-07-24T10:41:04.153 に答える