Javascript 未捕获的SyntaxError:将字符串传递给函数时意外标记非法
我有以下资料:Javascript 未捕获的SyntaxError:将字符串传递给函数时意外标记非法,javascript,jquery,html,Javascript,Jquery,Html,我有以下资料: 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\",\
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": ""
}
但是,当我尝试将参数传递给如下函数时:
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)
}
编辑
投票结束的人能解释一下这是怎么离题的,这样我就可以补救了吗
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);
我使用escape和unescape函数解决了这个问题:
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))
}
回车/lf可能是问题所在。为什么那些在里面?我建议清理源数据。它是从服务器返回的自动生成字符串的一部分。如果可能的话,我想保留它们。您是否100%确定这个问题与显示参数有关,而不是与使用未转换的引号构建字符串有关?另外,你能展示一下httpGet的来源吗?哦,用未替换的引号构建字符串是有意义的,用httpGet更新了这个问题。很抱歉,这只是我的一个输入错误
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))
}