javascript - d3.json 发出什么样的请求?

标签 javascript php d3.js

我正在使用这个 d3 插件:http://kamisama.github.io/cal-heatmap/它从本地 url 加载 json 数据,我通常在 PHP 中添加此控件来检查调用是否是正确的 AJAX 调用:

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');

此检查失败,我能够将其回溯到 d3.json 函数。

有人可以向我解释一下 d3.json 发出什么样的请求吗?

非常感谢。

编辑:

这是代码:

        <script type="text/javascript">
    var cal = new CalHeatMap();
    cal.init(
    {
        cellSize:15,
        range: 12,
        domain: "month",
        data: '<?php echo $url; ?>',
        legendHorizontalPosition: 'center',
        legendCellSize: 15
    }
    );
    </script>

$url 是返回 json 的 url。

最佳答案

首先,文档中并不清楚数据是如何处理的。所以我们可以快速浏览一下代码(第 2459 行 src\cal-heatmap.js)

switch(typeof source) {
    case "string":
        if (source === "") {
            _callback({});
            return true;
        } else {
            switch(this.options.dataType) {
            case "json":
                d3.json(this.parseURI(source, startDate, endDate), _callback);
                break;

当我们传递一个字符串而不是一个对象时,它会检查扩展并使用 d3 的辅助方法,因此其行为应该与 d3.json() 类似,它本身包裹着 d3.XHR ()。没有文档说它发送 HTTP_X_REQUESTED_WITH。许多其他框架都这样做,因此您会看到它几乎是检测 AJAX 调用的通用方法,但它不是必需的。

关于javascript - d3.json 发出什么样的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21824170/

相关文章:

javascript - 如何刷新 Meteor.Router 订阅的数据?

php - 如何强制下载文件?

javascript - "Stuttering"使用 d3.behavior.drag() 和变换时拖动

javascript - 如何使用 d3.js 创建 <dl>

javascript - 如何使用jquery从数据库创建复选框列表数据

javascript - 如何让 GraphQL 枚举解析字符串

javascript - jQuery成功,访问HTTP状态文本

javascript - 使用 Ajax 发送 Javascript 对象时未定义的数据

php 应用程序全局设置

javascript - 如何在D3中的xScale中显示日期和时间