javascript - 为什么我不能将服务器的日期时间传递给我的本地 jquery 脚本?

标签 javascript php jquery

<分区>

我有一个非常简单的 timeoftheserver.php 页面:

<?php
   echo date('D, d M y H:i:s');
?>

在我的本地脚本上也很简单:

var today;
try {
  today = new Date($.ajax({'type': 'HEAD', 'url': 'timeoftheserver.php'}).getResponseHeader('Date'));
}
catch(err) {
  today = new Date();
  alert("here");
}

alert(today);

但我得到的不是服务器时间(甚至是本地时间和警报 here):

Thu Jan 01 1970 01:00:00 GMT+0100 (Central Europe Standard Time)

这段代码有什么问题?

最佳答案

您正在使用 head 请求,其中不包含响应正文。将“head”改为“GET”。

否则,您可以在 header 中包含时间并从那里获取它,而不是将其发送到正文中。

方法 1) 使用 header :

在 PHP 中将时间作为 header 发送,将 PHP 更改为:

header("x-app-date: ".date('D, d M y H:i:s'));

然后像这样在 AJAX 中获取日期...

$.ajax({
    'type': 'HEAD', 
    'url':'timeoftheserver.php',
    'complete': function(r){
         today = new Date(this.getResponseHeader('x-app-date'));
     }
});

方法二:使用正文

让您的 PHP 保持原样。 将您的 Ajax 更改为:

$.ajax({
    'type': 'GET', 
    'url': 'timeoftheserver.php',
    'complete': function(resp){
        today = new Date(resp);
    }
});

关于javascript - 为什么我不能将服务器的日期时间传递给我的本地 jquery 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32844161/

相关文章:

javascript - 为什么我的 Express.js 后端在 Chrome 中成功删除了 cookie,但在 Firefox 中却没有?

javascript - 通过 php 引入 img 部分时图像不显示

PHP - 没有提交按钮的单选按钮

php - Magento 电子邮件模板格式发票日期

jquery - 是否有技术可以从网络爬虫中省略某些文本

javascript - 如何使用 Bootstrap 将图像显示为弹出窗口

javascript - 使用 jQuery 显示/隐藏 <div>

javascript - Knockout.js:从 JSON 获取可观察值

javascript - 从绝对位置 div 算起的图像高度

javascript:window.close();不关闭 IE 8 中的选项卡