Javascript 关于删除/替换字符串中的符号和字符代码的问题
我想将一个对象Javascript 关于删除/替换字符串中的符号和字符代码的问题,javascript,node.js,json,ejs,Javascript,Node.js,Json,Ejs,我想将一个对象dataO从Node.js/Express/EJS传递到客户端。 因此,在节点JS端脚本标记上: var dataO = {"first":[20000, 14000, 12000, 15000, 18000, 19000, 22000], "second":[12000, 11000, 18000, 12000, 19000, 14000, 26000]}; var dataP = JSON.stringify(dataO); app.g
dataO
从Node.js/Express/EJS传递到客户端。
因此,在节点JS端脚本标记上:
var dataO = {"first":[20000, 14000, 12000, 15000, 18000, 19000, 22000], "second":[12000, 11000, 18000, 12000, 19000, 14000, 26000]};
var dataP = JSON.stringify(dataO);
app.get("/", function(req, res){
res.render("index", {sStatus, dataP});
});
并尝试在客户端解析JSON.parse
:
var dataX = JSON.parse("<%= dataP %>");
var-dataX=JSON.parse(“”);
但在客户端,我得到了错误:uncaughtsyntaxerror:uncontractedtoken&在JSON的位置1
而dataP
的值是:“{";第一";:[200001400010000180001900022000],";第二";:[120001100018000120001900026000]”
我删除了和#34
,但仍然得到了相同的错误
大便在哪里?
谢谢,我解决了这个问题。问题是我试图将数据直接发送到客户端,这在许多方面都是错误的,我必须使用
XMLHttpRequest
,因此我仅用这个示例解决:
客户端代码:
$("#myBtn").click( function () {
console.log("Button Pressed");
var xhttp = new XMLHttpRequest();
var params = "123";
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
console.log(this.responseText); //And this catch sent JSON from Server.
}
};
xhttp.open('POST', './data', true);
xhttp.send(); //can sent anything from here to Server!
});
Nodejs端的代码是:
const express = require('express');
const app = express();
var ejs = require('ejs');
var bodyParser = require('body-parser');
app.set('views' , './views')
app.set('view engine' , 'ejs')
app.use(bodyParser.urlencoded({extended: true}));
app.set("view engine", "ejs");
var dataX = {"first":[20000, 14000, 12000, 15000, 18000, 19000, 22000], "second":[12000, 11000, 18000, 12000, 19000, 14000, 26000]};
app.get("/", function(req, res){
res.render("index");
});
app.post("/data", function(req,res){
console.log("render pushed");
res.json(dataX); //pass data to client, just remember don't make any other callbacks.
})
app.listen(3200 , () => console.log('Listening on port 3200'))
就这些。初学者问题;-) 在
标记中,不能/不应该使用html实体转义字符。你唯一需要逃离那里的就是
。另外,尽量不要发出JSON字符串(您需要对js字符串进行转义)并在客户端上解析它,而只是立即发出js对象文本。请参阅ejs文档了解如何做到这一点。