【问题标题】:jquery to convert strings to json to send to my webservice?jquery 将字符串转换为 json 以发送到我的网络服务?
【发布时间】:2009-06-01 19:19:47
【问题描述】:

试图弄清楚如何将我在 JavaScript(字符串)中的 5 个变量转换为 JSON 以发送到我的 ajax 函数

这是我的 ajax 函数,相对较新,但我相信这应该可以工作.. 但我需要将所有字符串转换为 JSON - 不是吗?

我相信有其他方法可以在没有 json 的情况下发送数据,但这是推荐的方法不是吗?

                $.ajax({
                type: "POST",
                url: "MyService.aspx/SendEmail",
                data: "{}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function(msg) {
                    alert(msg.d);
                },
                error: function() {
                    alert('error');
                }

            });

我相信在服务端我需要提取 JSON - 我正在使用 asp.net

有什么想法吗?

【问题讨论】:

    标签: asp.net jquery ajax json


    【解决方案1】:

    您不需要转换为 json 来传递数据。只需指定您需要传递的数据:

    $.ajax({
           url: "myUrl",
            data: {
                var1: "some data or var",
                dataItem2: false // or a variable
            },
    
            success: function(msg) {
                alert(msg.d);
            },
            error: function() {
                alert('error');
            }
        });
    

    数据将作为请求参数提供,就像这样(在 Asp.Net 中):

    Request.Params["var1"]
    

    现在,如果您确实需要在服务器上接收 json,那就是另一个问题了。如果这是一个要求,我有兴趣了解为什么。

    【讨论】:

    • 谢谢!所以我需要删除 contentType: "application/json; charset=utf-8", dataType: "json",????如果未指定,默认数据类型和内容类型是什么.. 不完全是,我想知道区别:-) ... JSON 是一个 javascript 对象 .... 所以我在服务器上使用 asp.net ...但是如果我需要注册一个具有 15 个不同参数的新用户怎么办……创建一个具有 15 个参数的方法是一种好习惯吗?这就是我的疑惑所在..
    • 唯一的缺点是 jQuery 不能正确地将对象转换为 Json 哈希。
    【解决方案2】:

    我建议您在项目中包含 JSON2.js,您可以在 link 找到它,并使用 JSON.stringify() 函数:

    ...
    data: JSON.stringify({ yourVar: "value", var2: "value2" }),
    ...
    

    如果您的网络服务返回 json 数据,您可以使用库解析结果:

    success: function(json) { json = JSON.parse(json);
                              var o = json.d;
                              ... 
    }
    

    它可以向您保证,您的输入数据将被清除每个非法字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-03
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多