请不要说我的问题重复,因为它不是,而且自过去 5 小时以来我搜索了很多。非常棘手的问题,但让我们看看是否有人真的可以帮助我。
好的,所以我正在尝试使用Highchart导出服务器获取生成的图表图像URL。我的代码如下,它没有在IE8或IE9中返回任何图像URL。好像你可以看到我隐藏的输入元素保持空白,但与chrome,Firefox,safari甚至IE edge和IE10一起工作得很好,但不是IE8和IE9。
这是代码,
var obj = {}, 图表;
chart = $('#graph<?php echo $i;?>').highcharts();
obj.svg = chart.getSVG();
obj.type = 'image/jpeg';
obj.width = 900;obj.height = 400;
obj.async = true;
<?php if (1) {?>
$.ajax({
type: 'post',
url: chart.options.exporting.url,
data: obj,
success: function (data) {
//alert(data);
var exportUrl = this.url,
imgContainer = $("#imgContainer<?php echo $i;?>");
var obj2 = exportUrl + data;
document.getElementById('graphurl_<?php echo $i;?>').value = exportUrl + data;
//var temp = exportUrl + data;
//$("#graphurl_1").val(temp);
//var imgie = document.getElementById("graphurl_1ie8");
//imgie.setAttribute('src','jimils.com');
}
});
不从导出服务器返回图像URL,请帮助。
CORS 在 IE8 和 IE9 中可以通过 XDomainRequest 对象实现。我们在这里做一些特征检测
if (window.XDomainRequest) {
/*old IE*/
var xdr = new XDomainRequest();
xdr.open("post", 'http://export.highcharts.com/?' + dataString);
xdr.onload = function () {
console.log(xdr.responseText);
$('#container').html('<img src="http://export.highcharts.com/' + xdr.responseText + '"/>');
};
xdr.send();
} else {
$.ajax({ // jQuery ajax call ... })
}
看到这个小提琴:http://jsfiddle.net/gvaartjes/vLaa7k57/1/
格特
它由我们的开发人员进行调查。感谢您的报道。