我正在使用这个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。
答案 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调用的通用方法,但它不是必需的。