Jsonlint声明字符串是有效的JSON,但是ajax失败了

时间:2016-05-20 16:51:26

标签: jquery json ajax webmethod

我在javascript中有以下内容:

        $('#tags').on("change", function (d) {
            var x = JSON.stringify($('#tags').val());
            var y = '{ "tags": "' + $('#tags').val() + '" }';
            $.ajax({
                cache: false,
                url: "ModuleDesigner.aspx/SaveTags",
                type: "POST",
                data: y,
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                error: function (xhr, status, error) {
                    var err = eval("(" + xhr.responseText + ")");
                    alert(err.Message);
                }
            });
        });

x = [“锅炉”,“冷水机组”]

y = {“tags”:“Boilers,Chillers”}

JSONLint将它们声明为有效的JSON,但只有当我将数据设置为y时才会运行SaveTags WebMethod。 (我发现这很难调试,因为当我将数据更改为x时它会无声地失败)

我更愿意传递x定义的数据。有没有办法做到这一点?如果这被认为是有效的JSON,它为什么会失败?

我添加了错误例程。当我通过x时,我收到错误:

Type 'System.Collections.Generic.IDictionary`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]' is not supported for deserialization of an array.

0 个答案:

没有答案