开发者

jQuery post, posting to ashx page

I am trying to save a user comment to my ashx web handler using jQuery post. The problem is that the form data does not seem to be posted, they got the value of Nothing.

This is a simplified version of my jQuery code:

$(".thread_container input[type='button'][name='simplecomment_submit']").live("click", function(e) {
    var query = "?action=comment_save";
    var url = "script/ajax/myhandler.ashx" + query;
    $.post(url, $('form').serialize(), function(data) {
        if (data == "True") {
            // update comment list
        } else {
            // report error                        
        }
    })
});

My ashx file looks something like this:

Public Class commenthandler : Implements IHttpHandler, IReadOnlySessionState

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        Dim action As String = context.Request.QueryString("action")
        Dim result As String = Boolean.FalseString

        Select Case action   开发者_开发问答   
            Case "comment_save"
                Dim comment As String = context.Request.Form("comment_message")
                ' call save comment here


        End Select

        Return result
    End Sub
End Class


try something like this

$(".thread_container input[type='button'][name='simplecomment_submit']").live("click", function(e) {

    var url = "/script/ajax/myhandler.ashx";
    $.post(url,
          {$('form').serialize(),action:'comment_save'}, 
          function(data) {
            if (data == "True") {
             // update comment list
             } else {
                // report error                        
           }
    }); <-- you missed a semicolon 
});

and the handler part

Public Class commenthandler : Implements IHttpHandler, IReadOnlySessionState

    Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        Dim action As String = context.Request.QueryString("action")
        Dim result As String = Boolean.FalseString

        Select Case action      
            Case "comment_save"
                Dim comment As String = Context.Request.Form.Get("comment_message")

                ' call save comment here


        End Select

        Return result
    End Sub
End Class

EDIT

$(".thread_container input[type='button'][name='simplecomment_submit']").live("click", function(e) {

        var url = "/script/ajax/myhandler.ashx";
        var commentText = $("#simplecomment_commenttext").html(); //get the comment text
        $.post(url,
              {commentTxt:commentText,action:'comment_save'}, 
              function(data) {
                if (data == "True") {
                 // update comment list
                 } else {
                    // report error                        
               }
        }); 
    });

and in the handler do

Dim action As String = context.Request.QueryString("commentTxt")
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜