【发布时间】:2011-08-14 14:19:26
【问题描述】:
我是一名 iPhone 开发人员,对 Web 开发很陌生,所以如果我在这里犯了愚蠢的错误,请原谅我:
我想要完成的是,当用户从下拉列表中选择一个项目时,它会调用一些 javascript,这会向我拥有的 PHP 文件发出 AJAX 请求,该文件返回一些 JSON。 - 该 JSON 包括缩略图文件名和图像标题。这些需要分别传入我的文档中的图像和文本字段。
问题是,在尝试评估 json 后它失败了。 - eval(json); 和 JSON.parse(json); 也是如此,我通过调用 document.write('something'); 解决了这个问题。定期在我的响应方法中。 - 它总是能够写到它解析 json 的地步。
我确定我的 PHP 是有效的并且我的请求是好的(我可以很好地输出 JS 的响应)。
这是我在下拉列表中选择新项目时调用的函数:
function changeImage(id){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
var res=xmlhttp.responseText;
var responseObject = eval(res);
var caption = responseObject.caption;
var textField = document.getElementById('caption');
textField.value = caption;
var imagePreview = document.getElementById('imgPreview');
imagePreview.src = responseObject.filename;
}
}
xmlhttp.open("GET","getCaption.php?id="+id,true);
xmlhttp.send();
}
当我输出 res(或手动访问 php 文件)时,JSON 看起来像这样:
{"caption":"A caption","filename":"myimage_thumb.jpg"}
为什么 JSON 评估失败?
更新:
记录此错误:SyntaxError: Parse error
【问题讨论】:
-
“失败”是什么意思?是否发生 Javascript 错误,浏览器是否崩溃,是否弹出错误消息...
-
'Something like this' - 也许您可能想将完整的输出传递给jsonlint.com。
-
@Codo - 查看更新的问题(抱歉应该检查控制台)
-
如果是解析错误,你真的应该发布完整的输出,以便可以看到错误在哪里。
-
@pimvdb - 这是完整的输出,刚刚检查过 - 它是有效的
标签: php javascript ajax json xmlhttprequest