Javascript 如何从web服务器获取本地时间
我已使用以下设置设置了AJAX服务器:Javascript 如何从web服务器获取本地时间,javascript,html,node.js,ajax,server,Javascript,Html,Node.js,Ajax,Server,我已使用以下设置设置了AJAX服务器: let express = require('express'); let server = express(); server.use('/MyWebApp', express.static(__dirname + '/public')); server.get('/MyWebApp/dateService', function(request, response){ response
let express = require('express');
let server = express();
server.use('/MyWebApp', express.static(__dirname + '/public'));
server.get('/MyWebApp/dateService', function(request, response){
response.send({'dateTime' : new Date()});
});
server.listen(2019);
console.log('server running on port 2019 ...')
我想获取本地时间,并在我的HTML中使用此函数:
function getDateTime(){
$.get({
url: "http://localhost:2019/MyWebApp/dateService",
dataType: "json",
success: function(result){
document.getElementById("timer").innerHTML = result;
}
});
}
但当我点击按钮时,它不起作用,我不知道为什么
<div id="timer">Random Text</div>
<input type="button" value="Server-Request" onclick="getDateTime()"/>
这个端点:
server.get('/MyWebApp/dateService', function(request, response){
response.send(new Date(Date.now()).toISOString());
});
但我的观点是,我想发送JSON。您不能像尝试使用JSON那样通过JSON发送工作对象
response.send({'dateTime' : new Date()});
像这样的HTML响应是字符串。如果您尝试发送一个对象,它将尝试从中生成一个字符串
而且,由于客户端看起来需要一个可以直接插入HTML的字符串,因此我建议您在服务器上执行以下操作:
server.get('/MyWebApp/dateService', function(request, response){
let now = new Date();
res.send(now.toGMTString()); // or pick your favorite string format
});
或者,查看并选择不同的字符串格式
然后,更改ajax调用以期望返回字符串:
function getDateTime(){
$.get({url: "http://localhost:2019/MyWebApp/dateService"}).then(function(result) {
document.getElementById("timer").innerHTML = result;
}).catch(function(err) {
// decide what to do if you get an error
console.log(err);
});
}
注意:这将获取服务器上的时间。如果您只需要用户的当前时间,则无需向服务器询问。您可以在本地浏览器Javascript中使用日期对象来获取客户端计算机的时间。它不起作用-这意味着什么?会发生什么?这与你预期的情况有什么不同?浏览器控制台中是否显示任何错误?还是Node.js控制台?浏览器的“网络”选项卡是否显示正在发出的请求?这和你期望的一样吗?有人回应吗?该响应是否包含您期望的数据?是否发生错误?代码中有几个明显的错误,还有几个潜在的问题。如果在成功回调中使用console.logresult,返回值是多少?只是想知道:为什么当前需要调用?新日期或Date.current有什么问题?
function getDateTime(){
$.get({url: "http://localhost:2019/MyWebApp/dateService"}).then(function(result) {
document.getElementById("timer").innerHTML = result;
}).catch(function(err) {
// decide what to do if you get an error
console.log(err);
});
}