Javascript jQuery无法将数组作为JSON内容类型发送

Javascript jQuery无法将数组作为JSON内容类型发送,javascript,ajax,json,jquery,Javascript,Ajax,Json,Jquery,我使用的脚本如下所示: $.ajax({ url: 'myservice', type: 'POST', contentType: 'application/json', data: ["test"], }); 但是,这会导致请求myservice/?undefined=undefined,这可能表明jQuery假设数据是一个映射。这有什么办法吗?是否有一种手动序列化数据的方法(最好不用求助于任何第三方库) 我手动测试了我的服务,它可以正确地处理数据,如[“te

我使用的脚本如下所示:

$.ajax({
    url: 'myservice',
    type: 'POST',
    contentType: 'application/json',
    data: ["test"],
});
但是,这会导致请求
myservice/?undefined=undefined
,这可能表明jQuery假设数据是一个映射。这有什么办法吗?是否有一种手动序列化数据的方法(最好不用求助于任何第三方库)

我手动测试了我的服务,它可以正确地处理数据,如
[“test”]

编辑:一个关于请求方法的错误


编辑(2):很有趣,现在它导致
400个错误请求
。但是,如果我切换到
“[“test”]”
(一个字符串),它会工作。我使用jQuery 1.5.2。

数据应该是如下对象:

{var1: 'test', var2: 'test'}
另外,我认为您可以将contentType设置为:“json”

如果需要序列化表单并发送值,jQuery有一个函数:

$("formId").serialize();

请参见

数据应为如下对象:

{var1: 'test', var2: 'test'}
另外,我认为您可以将contentType设置为:“json”

如果需要序列化表单并发送值,jQuery有一个函数:

$("formId").serialize();

请注意,您需要以字符串形式传入json

如果你的json很复杂,你可以使用Crockford的

请注意,您需要以字符串形式传入json


如果您的json很复杂,您可以始终使用Crockford。

方法:“POST”更改为
类型:“POST”

|


编辑:对于
数据
您应该使用查询字符串
example=test&examplex=test2
或javascript对象
{example:“test”,examplex:“test2”}
方法:“POST”
更改为
类型:“POST”

|



编辑:对于
数据
您应该使用查询字符串
example=test&examplex=test2
或javascript对象
{example:“test”,examplex:“test2”}

问题是,它不能是这种格式,因为服务器端需要另一种格式。我的理解是,
[“test”]
是有效的JSON,还是我错了?数据是手动提供的,它不是来自表单。另外,
serialize()
生成
application/x-www-form-urlencoded
jQuery数据需要是一个对象(如El Guapo所说),但将转换为
content
中指定的内容类型-如上所述,应该是“json”是的,它是具有1个值的数组(“test”)的有效表示法。。。不管怎样。。。如果您没有传入真正的querystring,jQuery将尝试为您创建它…指定
contentType:'json'
会导致
不支持的媒体类型
。关键是它不能是这种格式,因为服务器端需要另一种格式。我的理解是,
[“test”]
是有效的JSON,还是我错了?数据是手动提供的,它不是来自表单。另外,
serialize()
生成
application/x-www-form-urlencoded
jQuery数据需要是一个对象(如El Guapo所说),但将转换为
content
中指定的内容类型-如上所述,应该是“json”是的,它是具有1个值的数组(“test”)的有效表示法。。。不管怎样。。。如果您没有传入一个真正的查询字符串,jQuery将尝试为您创建它…指定
contentType:“json”
会导致
不支持的媒体类型
。如果
数据
不是字符串,jQuery将转换它。我认为这不适用于json,adam。请给我举个例子/参考。我刚刚试过这个。有趣的是,我正在继续我对它的理解。从jQuery对数据的描述中,可以看到-“它被转换为查询字符串(如果还不是字符串的话)”。如果json数据是一个字符串,那么jQuery肯定需要将其转换为一个对象,然后再将其转换为查询字符串(或其他类型)?如果希望数据以常规名称-值对的形式发送,它可以与对象一起工作。如果
data
不是字符串,jQuery将转换它。我认为这不适用于json,adam。请给我举个例子/参考。我刚刚试过这个。有趣的是,我正在继续我对它的理解。从jQuery对数据的描述中,可以看到-“它被转换为查询字符串(如果还不是字符串的话)”。如果json数据是一个字符串,那么jQuery肯定需要将其转换为一个对象,然后再将其转换为查询字符串(或其他类型)?如果希望数据以常规名称-值对的形式发送,它可以与对象一起工作。我更改了它,现在它导致了错误的请求(请参阅我的编辑)。我想我必须手动转换它。注意:该服务同时支持GET和POST,因此问题并不存在。我更改了它,现在它导致了错误的请求(请参阅我的编辑)。我想我必须手动转换它。注意:该服务同时支持GET和POST,因此不存在问题。