d3.json它的要求是什么?

时间:2014-02-17 08:33:38

标签: 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。

1 个答案:

答案 0 :(得分:2)

首先从文档中不清楚如何处理data。所以我们可以快速查看代码(Line 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调用的通用方法,但它不是必需的。