从 JSON 解析中删除一行

Remove a line from JSON parse

我正在与 JIVE 合作 JSON RESTFul API 并且在他们的 API 上他们有安全措施

(我指的是投掷'allowIllegalResourceCall is false.';)

throw 'allowIllegalResourceCall is false.';
{
  "id" : "52104", 
}

我正在使用这段代码来尝试解析它:

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {   
        var myObj = JSON.parse(this.responseText);
        document.getElementById("topdisplay").innerHTML = myObj.id;
    }    
};
xmlhttp.open("GET", "http://mysite/API/",true);
xmlhttp.send();

而且由于该起始行,我收到了一个错误。 我四处寻找尝试找到一个解决方案来跳过 JSON PARSE 会起作用,但我似乎无法找到一种可行的方法来做到这一点。

我还知道解析代码可以正常工作,因为当我删除第一行时它可以完美运行。

有什么帮助吗?

JIVE REST API 引入此功能是为了帮助防止 JSON 在 Web 浏览器易受攻击时进行劫持。

您需要先找到 {,然后从该位置到字符串末尾做一个子字符串。

var xmlhttp = new XMLHttpRequest();

xmlhttp.onreadystatechange = function() {

    if (this.readyState == 4 && this.status == 200) {   
        var response = this.responseText
                var myObj = JSON.parse(this.responseText.substring(this.response.indexOf('{')));

        document.getElementById("topdisplay").innerHTML = myObj.id;
    }    
};

xmlhttp.open("GET", "http://mysite/API/",true);
xmlhttp.send();

注意:

使用 RegEx,您需要找到第一行以 throw 并以分号结尾,如果找到则替换为空字符串。

JSON.parse(response.replace(/throw.*;/, "").trim());