【发布时间】:2016-04-05 13:38:18
【问题描述】:
我正在一个 Groovy/Grails 平台上编写我的第一个 Ajax 请求。
var newDataB = $.ajax({
method:'post',
url: url,
async: false,
data: {source:"${source}"},
success: function (response) {
jsonData = response;
var res = JSON.parse(jsonData);
alert(res);//
}
});
这是我的控制器“url”的响应
def result = [ value: 'ok' ]
render result as JSON
但它不起作用,我在浏览器中收到一条错误消息
SyntaxError: JSON.parse: unexpected character at line 1 column 2 of the JSON data
var res = JSON.parse(jsonData);
我不明白,响应似乎是格式不错的 JSON?
编辑我按照保罗的建议做了一个打印:
如果我执行
var newDataB = $.ajax({
method:'post',
url: url,
async: false,
dataType: 'json',
data: {source:"${source}"},
success: function (response) {
console.log(response)
console.log(response.value)
jsonData = response;
}
});
第一个打印是:
对象 { value="ok"}
第二张是
好的
如果我想得到结果,正确的方法是什么?
我是否必须在语句“成功:函数(响应){”中分配值
做类似的事情
var result
var newDataB = $.ajax({
method:'post',
url: url,
async: false,
dataType: 'json',
data: {source:"${source}"},
success: function (response) {
result = response.value
}
});
console.log("result : "+result);
此代码对我有用!
或者也许有一种方法可以得到结果,比如
var newDataB = $.ajax({
method:'post',
url: url,
async: false,
dataType: 'json',
data: {source:"${source}"},
success: function (response) {
}
});
var result = newDataB.response.somethingblablabla
或
var result = OneFunction(newDataB.response)
??????
【问题讨论】:
-
您确定需要解析它吗?如果你
console.log(response)
标签: javascript jquery json ajax grails