javascript - 去掉 while(1) 前置到 JSON 对象

标签 javascript jquery ajax json frontend

我正在发出一个 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/

相关文章:

javascript - 使用 Protractor 获取具有特定属性值的 span 的子元素

javascript - 无法调用 props 子函数

javascript - 无法弄清楚如何将导航器与 Jssor Slider 一起使用

javascript - 如何在 jQuery 中的同一事件上绑定(bind)多个 ID?

php - 在 AJAX 查询后使用 jQuery 解释 PDO 错误

javascript - 如何对多个按钮使用相同的ajax功能

javascript - 如何在 WebdriverIO 中点击 CTRL+M (Control + M)

Javascript 跳过未定义的相邻值

javascript - Jquery/css 在悬停时显示图像

javascript - 在使用轮询 ajax http 请求时尝试增加 javascript 计数器