【发布时间】:2010-10-11 01:04:17
【问题描述】:
我在调试 Ajax 调用中返回的代码时遇到了一些问题 - 特别是在 json 中返回的函数(错误不会在 Firefox 中陷入困境) - 直到我开始在 Internet Explorer 中调试这些问题(我认为这是一个与 firefox 相关的问题,因为 Venkman 也没有检测到这些错误)你知道有什么方法可以调试从 Ajax 调用返回的 json 代码吗?
编辑于 2009 年 3 月 4 日 15:05
感谢大家的回复,但我认为我解释得不够清楚。我对 Firebug 的了解足以进行基本调试,但是当我在 Ajax 调用中获取一些有问题的代码时,就会出现问题。假设我们有以下 HTML 文件(您需要将原型放在同一文件夹中以使其正常工作):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<script type="text/javascript" src="prototype.js"></script>
</head>
<body>
<script>
function ajaxErrorTest()
{
new Ajax.Request('data.json', {
'method': 'get',
'onSuccess': function(data){
if(data.responseJSON.func)
data.responseJSON.func();}});
}
</script>
<input type="button" value="test" onclick="ajaxErrorTest();" />
</body>
</html>
然后,data.json 文件的内容是这样的:
{'func':function(){console.log('loaded...');alert('hey');}}
如果您在浏览器中加载页面并单击“测试”按钮(一切顺利),您将在控制台中看到一些内容,以及一个显示“嘿”的警告框。现在将 data.json 文件更改为:
{'func':function(){console.log('loaded...');alerts('hey');}}
...然后再次单击“测试”按钮(无需重新加载页面;-) 你得到控制台线,但没有警告框......而且没有错误!!!这是我正在尝试调试的错误类型。
【问题讨论】:
-
我意识到这是一个老问题,但您找到解决方案了吗?我有同样的问题 - 使用 jQuery 加载 js 页面(例如 $.getScript("aScript.js"),请参阅docs.jquery.com/Ajax/jQuery.getScript) - 'aScript' 页面似乎无法用于调试......跨度>
-
呸,我也有同样的问题。
-
同样的问题! .任何人都找到了解决方案
-
为什么要运行远程获取的函数:\