JQuery .post函数dataType参数似乎没有做任何事情

时间:2011-03-01 16:54:29

标签: jquery

使用JQuery 1.4.4版,当我调用.ajax或.post时,我无法获得正确的JSON输出:

$.ajax({type: "POST", url: callbackUri, data: { cow: ["oh", "hello", "there"]}, success: returnFunction, dataType: "json"});

或以下:

$.post(callbackUri, { cow: ["oh", "hello", "there"]}, returnFunction, "json");.

在两种情况下,HTTP请求的主体都是这样的:

cow%5B%5D=oh&cow%5B%5D=hello&cow%5B%5D=there

这可能是一个非常简单的配置问题。任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

根据您的评论“HTTP请求的正文...”,您可能会误解JSON选项的作用。它指定了请求从服务器返回的数据类型 - 它与数据发送到服务器的格式无关。

HTTP请求的主体在所有情况下都是相同的,除非您创建一个json字符串并将其作为值发送。

答案 1 :(得分:1)

发送到服务器的数据(HTTP请求正文)没有任何问题。

dataType参数是服务器返回值的类型。 'json'表示jQuery会自动将响应解析为JSON。

检查服务器的响应,它可能不是有效的JSON。