未捕获的语法错误:将字符串传递给函数时出现意外的标记ILLEGAL

Uncaught SyntaxError: Unexpected token ILLEGAL when passing string to function

本文关键字:函数 ILLEGAL 意外 语法 错误 字符串      更新时间:2023-09-26

我有以下内容:

var params = httpGet("http://localhost/data");
console.log(params)

它在控制台中显示:

{
  "Success": true,
  "Data": {
    "requestBody": {
      "Text": "{'r'n  '"ID'": 1,'r'n  '"Name'": '"sample string 2'",'r'n  '"Desc'": '"sample string 3'",'r'n  '"quibble'": '"sample string 4'",'r'n  '"cobble'": 5,'r'n  '"abc'": 6,'r'n  '"Status'": '"Enabled'",'r'n  '"id'": 7'r'n}"
    }, 
    "responseBody": {
      "Text": "{'r'n  '"ID'": 1,'r'n  '"Name'": '"sample string 2'",'r'n  '"Desc'": '"sample string 3'",'r'n  '"quibble'": '"sample string 4'",'r'n  '"cobble'": 5,'r'n  '"abc'": 6,'r'n  '"Status'": '"Enabled'",'r'n  '"id'": 7'r'n}"
    },
    "apiDescr": "description"
  },
  "ErrorCode": 0,
  "ErrorDescription": "",
  "Meta": ""
}

然而,当我试图将params传递给如下函数时:

var params = httpGet("http://localhost/data");
console.log(params)
$(".modal-body").append("<p><a href='"#'" role='"button'" class='"btn btn-default'" onClick='"display_params('" + params + "')'">" + key + "</a>" + " " + d.verbDocDict[key]["document"] + "</p>")
$(".modal-body").append("<div id='"" + key + "'"></div>")
function display_params(params) {
    console.log(params)
}

我得到以下错误:

Uncaught SyntaxError: Unexpected token ILLEGAL

编辑

投票结束的人能解释一下这是怎么偏离主题的吗?这样我就可以补救了?

httpGet:

function httpGet(theUrl) {
    var xmlHttp = null;
    xmlHttp = new XMLHttpRequest();
    xmlHttp.open("GET", theUrl, false);
    xmlHttp.send(null);
    return xmlHttp.responseText;
}

您缺少引号:

var params = httpGet("http://localhost/data);

我使用escapeunescape函数解决了这个问题:

var params = httpGet("http://localhost/data");
$(".modal-body").append("<p><a href='"#'" role='"button'" class='"btn btn-default'" onClick='"display_params('" + escape(params) + "')'">" + key + "</a>" + " " + d.verbDocDict[key]["document"] + "</p>")
$(".modal-body").append("<div id='"" + key + "'"></div>")
function display_params(params) {
    console.log(unescape(params))
}