Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从web服务器获取本地时间_Javascript_Html_Node.js_Ajax_Server - Fatal编程技术网

Javascript 如何从web服务器获取本地时间

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

我已使用以下设置设置了AJAX服务器:


    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);
            });
        }