3

这个问题类似,我需要在发布请求中发送一个字符串作为数据。

与那个不同的是,我不能使用一个对象,因为我有重复的项目。正如您在我的示例数据 sn1 中看到的那样,sn2 和 sn3 在不同的日期时间重复了几次。

样本数据:

&sn3=2013-2-4T12:43:52&sn3=2013-2-4T12:43:55&sn1=2013-2-4T12:43:59&sn1=2013-2-4T12:44:0&sn2=2013-2-4T12:44:0&sn3=2013-2-4T12:44:2&sn2=2013-2-4T12:44:3&sn3=2013-2-4T12:44:19&sn3=2013-2-4T12:44:19&sn3=2013-2-4T12:44:19&sn2=2013-2-4T12:44:19&sn3=2013-2-4T12:44:21&sn2=2013-2-4T12:44:22&sn2=2013-2-4T12:46:39&sn3=2013-2-4T12:46:42&sn2=2013-2-4T12:46:44&sn2=2013-2-4T12:46:45&sn2=2013-2-4T12:46:46&sn2=2013-2-4T12:47:27&sn2=2013-2-4T12:47:27&sn2=2013-2-4T12:49:44&sn2=2013-2-4T12:50:21&sn2=2013-2-4T12:52:21&sn2=2013-2-4T12:52:24&sn2=2013-2-4T12:57:35&sn3=2013-2-4T12:57:38&sn3=2013-2-4T12:57:39&sn2=2013-2-4T12:57:39&sn2=2013-2-4T12:57:40&sn3=2013-2-4T12:57:46&sn3=2013-2-4T13:21:30

我尝试使用以下

console.log(screens); //logs my sample data posted above.
        $.ajax({
            url : url,
            type: "POST",
            dataType : 'text',
            data : screens,
            success : function(data) {
                console.log("sucessfull sending:")
                console.log(data);
            },
            error : function() {
                console.log('failed');
            }

        });

但它总是触发失败。

我可以将其作为字符串发送吗?如果没有,我怎样才能使用相同的密钥发送多个项目?

4

3 回答 3

2
    console.log(screens); //logs my sample data posted above.
    $.ajax({
        url : url,
        type: "POST",
        dataType : 'text',
        data : {screens:screens},
        success : function(data) {
            console.log("sucessfull sending:")
            console.log(data);
        },
        error : function() {
            console.log('failed');
        }

    });

data : {screens:screens},,如果你做这样的事情,在服务器上你将能够得到它:screensString = Request["screens"]. 之后,screensString 将包含一个包含所有屏幕的字符串。

于 2013-02-04T13:35:45.063 回答
1

当您未在 ajax 选项中指定 contentType 时,您的请求将默认为 'application/x-www-form-urlencoded; 字符集=UTF-8'。但是,当您的帖子数据只是文本时,您应该通过指定 contentType 'text' 让服务器知道这一事实。与 contentType 不同,dataType 指定您期望从服务器返回的响应数据的类型。

于 2013-02-04T13:47:26.670 回答
1

我认为您需要在参数中使用 [] 。

而不是&sn3=多次发送(这是在重写自己)将它作为这样的数组发送&sn3[]=

如果您从表单输入使用获取此数据name="sn3[]"并且如果是这种情况,我建议您将$('#yourform').serialize()其用作发送的数据

于 2013-02-04T13:58:45.260 回答