我是网络应用程序的新手,目前我正试图绕过从客户端到服务器端并返回的路由。我遇到了一个问题,我在客户端做了xmlhttprequest,得到了一个正在运行的json。但是现在我没有在本地运行,没有一个GETS正在运作。所以我想我必须做到路由到服务器端,做request()来获取json,我可以。
但是现在我不明白的是如何将json传递回客户端以使用那里的函数,因为我使用这个json的所有函数都在那里。这可能吗?或者我现在必须做服务器端的一切吗?
服务器端
server.get('thankyou.html/something', function(req, res) {
var options = {
url: 'https://**.***.**.**:****/****/*******/',
rejectUnauthorized: false,
method: 'GET'
};
request(options, function (error, response, body) {
if (error) console.log(error);
else displaytable(body);//<------- clientside funtion
});
});
客户端
var uri = 'thankyou.html/something';
function addTable() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && (xhr.status == 201 || xhr.status == 200)) {
// var json = JSON.parse(xhr.responseText);
displaytable(json);
}
};
xhr.open("GET", uri, true);
xhr.send();
}
我想我也没有做正确的路由。
答案 0 :(得分:1)
这里的预期流量是多少?客户 - &gt;你的服务器@ thankyou.html / something - &gt;一些其他服务器URL(你已审查的那个) - &gt;回复您的服务器 - &gt;回复客户 - &gt;客户端使用响应显示表?
无论哪种方式,您绝对无法从服务器调用客户端功能。反正不是那样的。您需要使用body
(您使用的路由/服务器库?)返回res.json(body)
,然后解析xhr.responseText
,就像您的注释掉的行正在进行。然后你将在客户端上拥有json,并且可以按预期继续。
确保您的request
调用返回错误,并将错误传递给客户端,否则它将一直挂起,直到超时。