使用jQuery将JSON发送到服务器

too*_*hcs 4 javascript jquery json getjson

我需要以JSON Object的形式向我的服务器端发送一个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++;
            }
Run Code Online (Sandbox Code Playgroud)

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

现在我有几个问题:

你能给我一个如何转换它的例子吗?似乎有一百万种方式,其中之一就是JSON.stringify(jsObj);.我的对象只包含一组值.据我所知,这将是一个例子:

{ array : ["value1","value2","value3"] }
Run Code Online (Sandbox Code Playgroud)

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

现在我一直在尝试,但无法把它弄出来......

$ .getJSON代码

        $.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>');
        });
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 15

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

你应该在这里理解术语.Javascript中没有"JSON对象"这样的东西.它只是某种类型的Javascript对象,在这个意义上它并没有什么特别之处.您要做的是将Javascript对象序列化为单个字符串.该字符串是您将发送到服务器的参数,服务器会将该字符串反序列化为对象(在您的服务器代码使用的任何语言的上下文中).

因此,当你打电话时JSON.stringify(obj),你得到的只是一个字符串.将这样的字符串传递回服务器与传递任何其他字符串没有什么不同; 这只是一个参数.使用$.post()后它,或者你甚至可以只是把这些东西它变成一个简单的表单输入元素的值和发布形式老式的方法.