2011-09-26 104 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。 –