我是AJAX和Javascript的新手,需要对此代码提供一些帮助。
以下是我正在使用的JSON位
{"URL":"www.youtube.com","Total URLs":132,"Completed":63}
我需要获取这些值中的每一个,并使用AJAX在不同的HTML输入文本框中显示。
Current URL: <input type="text" name="urlqueue">
Total URLs: <input type="text" name="total">
Completed: <input type="text" name="completed">
现在我有
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.form.total.value = ajaxRequest.responseText;
}
}
ajaxRequest.open("GET", "test_results.php", true);
ajaxRequest.send(null);
你可以看到这不再起作用了。我用来让文件只包含1个数字而不包含JSON。现在我需要使用该文件获得许多带有JSON的结果,并且需要一些指导。
如何使用AJAX在HTML输入框中显示JSON?
答案 0 :(得分:0)
使用JSON解析库或使用eval解析JSON。请注意,使用eval可能非常危险,因为如果使用不正确,您可能会引入跨站点脚本漏洞。
生成的对象将具有值,因此您可以单独设置每个字段,例如:
document.form.total.value = jsonObject["Total URLs"];
答案 1 :(得分:0)
请注意,当您创建AJAX并检索响应时,响应文本不是JavaScript对象。它只是字符串,因此您应该将字符串计算为JavaScript Object。以下代码将以快速的方式生成它。但是,作为JavaScript大师的Douglas Crockford说“eval是邪恶的”。
var data = eval('(' + ajaxRequest.responseText + ')'); document.form.total.value = data[Total URLs]
我还想记住,避免使用属性名称中的空格。例如,您应该拥有名为“Total_URLs”或“TotalURLs”等的属性,而不是“Total URL”