2011-09-26 85 views
0

我在JavaScript中使用Json。我正在从test.js阅读json。我如何阅读for(;;)Javascript Json解析

<script type="text/javascript"> 
    $.getScript('ajax/test.js', function(data, textStatus){ 
     jQuery.each(data, function(return) { 
      alert(return.name); 
      alert(return.surname) 
     }); 
    }); 
    </script> 

-

测试JS

for (;;); 
{ 
"name"  : "Mustafa Can", 
"surname" : "Pala" 
}; 
+0

你能请清除这个? “我怎样才能读取(;;)”是什么意思? – Coffee

+1

更改test.js,因为这只是无效的JSON。 –

+0

@Matt:这是一种反XSS技术 – SLaks

回答

2

需要调用$.get获取的脚本作为字符串的内容,然后取出for(;;);

$.get('ajax/test.js', function(data, textStatus){ 
    var json = data.replace(/^for\(;;\);/, ""); 
    var obj = $.parseJSON(json); 

    alert(obj.name); 
    alert(obj.surname) 
}, 'text'); 
+0

谢谢SLaks。为什么你使用'文本'格式? –

+0

@Gürkan:防止jQuery将其解析为JSON(这将失败)或将其作为Javsacript(将冻结)执行它 – SLaks

+0

再次感谢SLaks。 –