我正在尝试将此字符串作为html发送。该字符串存储在var
中,并使用res.send(respuesta);
发送
<div data-nanogallery2='{
"itemsBaseURL": "http://nanogallery2.nanostudio.org/samples/",
"thumbnailWidth": "auto",
"thumbnailBorderVertical": 0,
"thumbnailBorderHorizontal": 0,
"colorScheme": {
"thumbnail": {
"background": "rgba(0,0,0,0)"
}
},
"thumbnailDisplayTransition": "flipDown",
"thumbnailDisplayTransitionDuration": 750,
"thumbnailDisplayInterval": 250,
"thumbnailLabel": {
"display": false
},
"thumbnailHoverEffect2": "toolsAppear|scale120",
"galleryDisplayMode": "pagination",
"galleryPaginationMode": "numbers",
"thumbnailAlignment": "center"
}'>
<a href="berlin1.jpg" data-ngthumb="berlin1t.jpg" data-ngdesc="">Berlin 1</a>
<a href="berlin2.jpg" data-ngthumb="berlin2t.jpg" data-ngdesc="">Berlin 2</a>
<a href="berlin3.jpg" data-ngthumb="berlin3t.jpg" data-ngdesc="">Berlin 3</a>
</div>
问题是,不知何故,所有的'
都会自动转换成"
,这就弄乱了我的客户端标记。
有没有办法维护'
?
编辑:我正在尝试动态地生成这一部分HTML。它由一个画廊图书馆使用。该const
总是相同的,然后我生成带有图片信息的链接,并将它们添加到字符串中,然后通过ajax
将字符串respuesta
发送到客户端以附加它。
// GETS
router.get('/bodas', function (req, res) {
Foto.find({ tipo: 'bodas' }).lean().exec(function (err, data) {
if (err) throw err;
var respuesta = generateBodasHTML(data);
res.send(respuesta);
});
});
function generateBodasHTML(data) {
var respuesta = cuerpoGaleria0;
for (i = 0; i < data.length; i++) {
respuesta += '<a href="' + data[i].foto_name + '" data-ngthumb="' + data[i].thumb_name + '" data-ngdesc="">' + data[i].name + '</a>';
}
respuesta += "</div></div>";
return respuesta;
}
const cuerpoGaleria0 = `<div class="page_wrapper_home"><div data-nanogallery2='{"itemsBaseURL": "../assets/galeria/", "thumbnailWidth": "auto", "thumbnailBorderVertical": 0, "thumbnailBorderHorizontal": 0, "colorScheme": { "thumbnail": { "background": "rgba(0,0,0,0)" } }, "thumbnailDisplayTransition": "flipDown", "thumbnailDisplayTransitionDuration": 750, "thumbnailDisplayInterval": 250, "thumbnailLabel": { "display": false }, "thumbnailHoverEffect2": "toolsAppear|scale120", "galleryDisplayMode": "pagination", "galleryPaginationMode": "numbers", "thumbnailAlignment": "center"}'>`;
这是ajax call
function getContentAjax(pagina) {
$.ajax({
url: '/' + pagina
}).done(function (result) {
$('#contenido').append(result);
toggleSliders();
if (pagina === 'inicio') {
triggerHomeAnimations();
}
});
}
发布于 2018-07-05 06:03:44
您可以使用反引号`
`{
"itemsBaseURL": "http://nanogallery2.nanostudio.org/samples/",
"thumbnailWidth": "auto",
"thumbnailBorderVertical": 0,
"thumbnailBorderHorizontal": 0,
"colorScheme": {
"thumbnail": {
"background": "rgba(0,0,0,0)"
}
},
"thumbnailDisplayTransition": "flipDown",
"thumbnailDisplayTransitionDuration": 750,
"thumbnailDisplayInterval": 250,
"thumbnailLabel": {
"display": false
},
"thumbnailHoverEffect2": "toolsAppear|scale120",
"galleryDisplayMode": "pagination",
"galleryPaginationMode": "numbers",
"thumbnailAlignment": "center"
}`>
发布于 2018-07-05 09:32:25
更新:正如问题标题中所问的,Express似乎仍然没有问题。
可能是AJAX请求引起了问题,但是post中没有生成关于在浏览器中接收到的响应的调试信息。
如果您在nodejs中本地运行此测试服务器:
Express服务器
var app = express();
app.get("/bodas", function( req, res, next) {
var html = '<!DOCTYPE html><html><head><meta charset="utf-8"></head><body>\n\n';
var data = [
{foto_name: "foto_name1", thumb_name: "thumb_name1", name: "name1"},
{foto_name: "foto_name2", thumb_name: "thumb_name2", name: "name2"},
{foto_name: "foto_name3", thumb_name: "thumb_name3 ", name: "name3"}
];
var respuesta = generateBodasHTML(data);
res.send(html + respuesta + '\n\n</body></html>');
});
function generateBodasHTML(data) {
var respuesta = cuerpoGaleria0;
for (i = 0; i < data.length; i++) {
respuesta += '<a href="' + data[i].foto_name + '" data-ngthumb="' + data[i].thumb_name + '" data-ngdesc="">' + data[i].name + '</a></br>';
}
respuesta += "</div></div>";
return respuesta;
}
const cuerpoGaleria0 = `<div class="page_wrapper_home"><div data-nanogallery2='{"itemsBaseURL": "../assets/galeria/", "thumbnailWidth": "auto", "thumbnailBorderVertical": 0, "thumbnailBorderHorizontal": 0, "colorScheme": { "thumbnail": { "background": "rgba(0,0,0,0)" } }, "thumbnailDisplayTransition": "flipDown", "thumbnailDisplayTransitionDuration": 750, "thumbnailDisplayInterval": 250, "thumbnailLabel": { "display": false }, "thumbnailHoverEffect2": "toolsAppear|scale120", "galleryDisplayMode": "pagination", "galleryPaginationMode": "numbers", "thumbnailAlignment": "center"}'>`;
var server = app.listen(80, function () {
console.log("testexpress listening on local host port 80");
});
并查看使用URL发送的页面的页面源代码:
http://localhost/bodas
您可以看到单引号被保留下来,并且data-nanogallery2
属性在语法上是有效的。
请阅读您首选语言站点(例如https://es.stackoverflow.com/help/mcve、https://en.stackoverflow.com/help/mcve或https://pt.stackoverflow.com/help/mcve )的帮助中心中的“如何创建完整且可验证的示例”。包括测试数据会增加你获得有用答案的机会。
https://stackoverflow.com/questions/51181184
复制相似问题