【问题标题】:AJAX array stopping AJAX callAJAX 数组停止 AJAX 调用
【发布时间】:2017-05-08 16:01:56
【问题描述】:

请看下面的 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 (这是一个数组),即我在客户端和服务器端将其排除在外,就可以达到它。为什么数组没有传递给服务器?没有错误 - 就好像什么都没发生一样。

【问题讨论】:

  • 您应该传递一个 JavaScript 名称/值对象作为 data 的值;它不应该只是一个字符串,除非它是 URL 查询字符串的形式。
  • @Pointy,你能在答案中发布吗?
  • @Pointy 如果服务器需要,你可以传递一个 JSON 字符串
  • @epascarello 当然是的,但我认为从服务器端代码 sn-p 判断可能不是这种情况。

标签: javascript .net ajax vb.net


【解决方案1】:

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

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

    [ { name: "foo", value: "bar" },
      { name: "hello", value: "world" }]
    

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-03
    • 1970-01-01
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    • 2016-02-13
    相关资源
    最近更新 更多