我四处搜索此错误,但似乎没有任何解决方案可以帮助我解决所遇到的问题。我正在做一个 ajax 请求,我正在尝试检索服务器发布的 json 输出。我可以打印出我试图捕获的 json(通过 console.log()),而不是在 jQuery.parsejson() 中处理它。我不断收到“Uncaught SyntaxError: Unexpected token o”错误。请问有人可以建议吗?
我的代码:
// Make ajax request
$.ajax({
url: 'http://localhost/multipleFileUpload_adam/webservice/delete_pdf.php',
data: {delete_array: jsonString},
dataType: 'json',
type: 'POST',
success: function(data){
console.log(data);
var x = jQuery.parseJSON(data);
},
console.log(data) 给出以下内容(我正在尝试检索“success_deleted”数组:
Object {success_delete: Array[2], unsuccess_delete: Array[0], input array: Object}
如果我删除这行代码:
var x = jQuery.parseJSON(data);
然后我就可以让 console.log(data) 工作了。如果我添加它,我会得到上面提到的错误。
最佳答案
这一行:
dataType: 'json',
告诉 jQuery 忽略服务器返回的内容类型,并始终将响应作为 JSON 进行解析。
然后:
success: function(data){
您从解析 JSON 中获得的 JavaScript 值(它是一个对象)被传递到 data
中。
这一行:
jQuery.parseJSON(data);
- 获取
data
(一个对象)的值 - 将其转换为字符串(将是
[object Object]"
) - 尝试将该字符串解析为 JSON(事实并非如此)。
Then I am able to get the console.log(data) to work. if i add it i get the error mentioned above.
是的。这是预期的行为。不要那样做。只需使用 data
中已解析的数据即可。
关于javascript - 执行 ajax 成功函数 - jQUERY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29518994/