【发布时间】:2013-02-28 08:32:45
【问题描述】:
我想使用 jQuery $.ajax 进行 POST 调用,发送一些信息(通过 POST,例如:page.aspx?var1=value....)。
但我也希望 jQuery 处理服务正在返回 JSON,以便我返回一个 JSON 对象。
var data = {name: _name, ...};
var request = $.ajax({
url: url,
type: "post",
data: data,
//dataType: "json"
});
只要我使用dataType: "json",它允许我接收 JSON 对象,我就会在请求中收到一个解析错误!
希望你能帮我解决这个问题!
提前致谢!
【问题讨论】:
-
你得到的确切错误是什么?
-
如果您遇到解析错误,这可能意味着您的 JSON 无效。您可以粘贴返回的 JSON 字符串吗?语法很可能在某个地方被破坏了。
-
你可以在请求中设置一个像“Content-Type: application/json”这样的头部,jQuery会自动知道它得到了什么。
-
除非他们定义了一种方法,否则您无法控制服务器将发送回您的内容。那么,您是应该向他们发送 JSON 格式的表单,还是应该发送标准的 POST 对象?下一个问题 - 服务器将什么格式定义为响应?
-
天哪。你们真的很快!我想我找到了问题所在。我在想 parseError 是因为它试图将我的 POST 数据解析为 json,但实际上有一个格式不正确的 json 从服务器返回!!! :) 我是对的,dataType: 'json' 是接收 json 对象的设置,而 type: 'post' 允许我使用任何数据进行正常的 POST 调用.. 对吗?!非常感谢您的快速回复和帮助!