[英]Using external json to a jade in node.js
如何将Json对象从XMLHttpRequest传递到我的Jade文件? 仅显示一个空白页,并且服务器正在为get方法发送500个内部错误。
var express = require('express');
var router = express.Router();
var XMLHttpRequest = require("XMLHttpRequest").XMLHttpRequest;
/* GET home page. */
router.get('/:id', function (req, res) {
var id = req.params.id;
getJSON('/pros/' + id, function (data) {
res.render('consultProfessionnal', { prof:JSON.stringify(data)});
}, function (status) {
alert('Something went wrong.');
});
});
module.exports = router;
var getJSON = function (url, successHandler, errorHandler) {
xhr = new XMLHttpRequest();
xhr.open('get', url, true);
xhr.responseType = 'json';
xhr.onreadystatechange = function () {
var status = xhr.status;
if (request.readyState === 4 && status === 200) {
successHandler && successHandler(xhr.response);
} else {
errorHandler && errorHandler(status);
}
};
xhr.send();
};
这是我发送json对象的玉文件:
extends layout
block content
.container()
#viewItem
if prof.sexe==1
a
img.img-responsive(src='https://cdn2.iconfinder.com/data/icons/ios-7-icons/50/user_male2-128.png', alt='', style='padding-left:60px;')
else if prof.sexe==0
a
img.img-responsive(src='https://cdn0.iconfinder.com/data/icons/futurama/128/Brainslug.png', alt='', style='padding-left:60px;')
else
a
img.img-responsive(src='https://cdn2.iconfinder.com/data/icons/ios-7-icons/50/user_female2-128.png', alt='', style='padding-left:60px;')
h2= prof.prenom + ' ' + prof.nom
h4.space= 'Speciality : ' + prof.specialite
if prof.sexe==1
h4= 'Sexe : Male'
else if prof.sexe==0
h4= 'Sexe : Other'
else
h4= 'Sexe : Female'
h4= 'Total visit : ' + prof.nbreTotal
h4= 'Total patient : ' + prof.nbrePatient
hr
h3 2014 Patient(s)
hr
each visite in prof.patient2014
li= visite.prenom + ' ' + visite.nom
button(
type='submit'
style='width: 25px; height: 25px; background-color: black;'
id=prof._id
onclick="alerted()"
)
script(src='/stylesheets/js/jquery.js')
script(src="../javascripts/script.js")
script(src='/stylesheets/js/bootstrap.min.js')
问题在这里: getJSON('/pros/' + id,
在浏览器中,相对URL将解析为{protocol}:// {domain)。{tld} {port?} {relative url}协议,域,TLD和端口均基于页面。
但是,在服务器上没有页面,因此您需要手动解析URL。
因此,要解决该问题,可以将其更改为getJSON('http://' + req.headers.host + '/pros/' + id,
它应该可以工作(或您要解析主机的任何其他方式)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.