与this question类似,我需要在帖子请求中发送一个字符串作为数据。
与那个不同,我不能使用对象,因为我有重复的项目。正如您在我的示例数据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');
}
});
但它总是触发失败。
我可以将其作为字符串发送吗?如果没有,我如何使用相同的密钥发送多个项目?
答案 0 :(得分: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将包含一个包含所有屏幕的单个字符串。
答案 1 :(得分:1)
如果未在ajax选项中指定contentType,则您的请求将默认为'application / x-www-form-urlencoded;字符集= UTF-8' 。 但是,当您的帖子数据只是文本时,您应该通过指定contentType“text”让服务器知道这一事实。 与contentType相反,dataType指定了您期望从服务器返回的响应数据的类型。
答案 2 :(得分:1)
我认为您需要在参数中使用[]。
而不是多次发送&sn3=
(重写自己)而不是像&sn3[]=
如果您使用name="sn3[]"
从表单输入中获取此数据,如果是这种情况,我建议您使用$('#yourform').serialize()
作为发送的数据