我正在发出一个 ajax get 请求,但收到一个以 while(1) 为前缀的 JSON 对象,例如。
while(1);{"servers":[{"some_data": data, "etc":...}]}
我们刚开始这样做是为了防止恶意攻击,但我不确定如何将其删除以便正确解析 JSON。
这是我用于 $.get 调用的函数
function myFunction() {
$.get('/v1/servers').success(function(data) {
data.servers.forEach(function(server){
presentServer(server);
});
});
}
最佳答案
试试这个:
var text = ajaxResponse.responseText;
var jsonObject = JSON.parse(text.replace('while(1);', ''));
不使用replace的另一种方式:
var jsonObject = JSON.parse(text.substring(text.indexOf(';') + 1);
更新了你的功能:
function myFunction() {
$.get('/v1/servers').success(function(response) {
var data = JSON.parse(response.responseText.substring(text.indexOf(';') + 1));
data.servers.forEach(function(server){
presentServer(server);
});
});
}
关于javascript - 去掉 while(1) 前置到 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24640958/