AJAX数组停止AJAX调用

时间:2017-05-08 16:01:56

标签: javascript .net ajax vb.net

请参阅下面的AJAX代码:

function Save()
        {

            var checkBoxArray = $("input:checkbox:checked").map(function () {
                return this.id
            }).get();

            var str = JSON.stringify(checkBoxArray);
                var user = document.getElementById("ctl00_ContentPlaceHolder1_lstUsers");
                $.ajax({
                    type: "POST",
                    url: "frmReview.aspx/AllocateReview",
                    data: '{strUser: "' + user.value + '", strCheckBoxes: ' + str + '}',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                success: OnSuccess(),
                async: false,
                failure: function (response) {
                    alert('There was a problem allocating the reviews')
                }
                });

                function OnSuccess() {
                    return function (response) {
                        alert("The reviews where allocated successfully");
                    }
                }
     }

以及下面的服务器端代码:

<System.Web.Services.WebMethod()> _
    Public Shared Sub AllocateReview(ByVal strUser As String, ByVal strCheckBoxes As String)
       msgbox("got here")
    End Sub

我在消息框(服务器端)上放了一个断点。但是,没有达到。如果我不传递str(这是一个数组),即我在客户端和服务器端排除它,它就会到达。为什么数组没有传递给服务器?没有错误 - 好像没有任何反应。

1 个答案:

答案 0 :(得分:1)

在jQuery $.ajax()调用中,data属性应为

  • 一个URL样式的查询字符串(“foo = bar&amp; hello = world”);
  • 普通对象({ foo: "bar", hello: "world" });
  • 具有namevalue属性

    的对象数组
    [ { name: "foo", value: "bar" },
      { name: "hello", value: "world" }]
    

您的代码正在构建一个JSON字符串,我认为不应该这样。