使用 jQuery 将 JSON 发送到服务器

发布于 2024-10-01 09:18:23 字数 1402 浏览 6 评论 0原文

我需要以 JSON 对象的形式将 ID 数组发送到服务器端。我使用下拉列表,可以选择多个值来对它们执行操作。

为了将它们放入数组中,我使用了:

var selectedArray = [];

            var selectObj = document.getElementById('addedList');
            var i=0;
            var count=0;
            for(i=0;i<selectObj.options.length;i++){
                selectedArray[count] = selectObj.options[i].value;
                count++;
            }

现在的问题是,我需要将这些 ID 发送到服务器。 我一直想像发送 JSON 对象一样发送它,因为它具有可变数量的参数。据我所知,你可以将 JS 对象转换为 JSON。

现在我确实有几个问题:

您能给我一个如何转换它的示例吗?似乎有一百万种方法,其中之一是 JSON.stringify(jsObj); 。我的对象仅由一组值组成。据我所知,这是一个例子:

{ array : ["value1","value2","value3"] }

另一个问题是: 我如何使用 jQuery 发送这个?我可以使用 $.getJSON 将 JSON 对象发送到服务器吗? (这在幕后使用 $.GET ),还是我需要使用 $.POST ?

现在我刚刚尝试过,但无法得到它......

$.getJSON code

        $.getJSON("removerequest.htm",{ ids: JSON.stringify(selectedArray) }, function(data){
            $('#removerequestdiv').text('');

            $('#removerequestdiv').append('<select name="addedList">');
            for(var index in data){
                $('#removerequestdiv').append('<option value="' + data[index].id + '">' + data[index].voornaam + data[index].familienaam + '</option>');
            }
            $('#removerequestdiv').append('</select>');
        });

I have the need to send an array of ID's to my server-side in the form of a JSON Object.I am using a dropdownlist where multiple values can be selected to do an action with them.

To get them in an array, I've used:

var selectedArray = [];

            var selectObj = document.getElementById('addedList');
            var i=0;
            var count=0;
            for(i=0;i<selectObj.options.length;i++){
                selectedArray[count] = selectObj.options[i].value;
                count++;
            }

Now the question is, I need to get those ID's to the server.
I've always thought of sending it like a JSON object, since it has a variable amount of parameters. As far as I found out, you can convert a JS object to JSON.

Now I do have a few questions:

Could you give me an example of how to convert it? There seem to be a million ways, one of them being JSON.stringify(jsObj);. My object would simply consist of an array of values. As far as I know this would be an example:

{ array : ["value1","value2","value3"] }

Another question is:
How can I send this using jQuery? Can I send a JSON object to the server using $.getJSON? (This uses $.GET under the hood), or do I need to use $.POST ?

Now I've just been trying, but can't get it out...

$.getJSON code

        $.getJSON("removerequest.htm",{ ids: JSON.stringify(selectedArray) }, function(data){
            $('#removerequestdiv').text('');

            $('#removerequestdiv').append('<select name="addedList">');
            for(var index in data){
                $('#removerequestdiv').append('<option value="' + data[index].id + '">' + data[index].voornaam + data[index].familienaam + '</option>');
            }
            $('#removerequestdiv').append('</select>');
        });

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╰沐子 2024-10-08 09:18:23

$.getJSON() 例程用于服务器获取 JSON 编码内容。您的问题是相反的:您想将其发送服务器。

你应该明白这里的术语。 Javascript 中并不存在真正的“JSON 对象”。它只是某种类型的 Javascript 对象,从这个意义上来说它没有什么特别的。您想要做的是将 Javascript 对象序列化为单个字符串。该字符串是您将发送到服务器的参数,服务器将将该字符串反序列化回对象(在服务器代码使用的任何语言的上下文中)。

因此,当您调用 JSON.stringify(obj) 时,您得到的只是一个字符串。将这样的字符串传递回服务器与传递任何其他字符串没有什么不同;这只是一个参数。使用 $.post() 来发布它,或者您甚至可以将其填充到简单表单输入元素的值中,然后以老式方式发布表单。

The $.getJSON() routine is for fetching JSON-encoded content from the server. Your problem is the opposite: you want to send it to the server.

You should understand the terminology here. There's no such thing really as a "JSON object" in Javascript. It's just a Javascript object of some sort, and there's nothing special about it in that sense. What you want to do is serialize the Javascript object into a single string. That string is your parameter you'll send to the server, and the server will deserialize that string back into an object (in the context of whatever language your server code is using).

Thus, when you call JSON.stringify(obj), what you get is just a string. Passing such a string back to the server is no different than passing any other string; it's just a parameter. Use $.post() to post it, or you can even just stuff it into the value of a simple form input element and post a form the old-fashioned way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文