我正在製作一個使用SVG,d3.js和JQuery的數據可視化工具。我目前正在做一個功能的出口(和下載)作爲一個SVG文件:如何將一個很長的字符串從一頁傳遞到另一頁?
// Code on main page
var svg = $("#svg-wrap").html();
var win = window.open("export.php?svg=" + svg, '_blank'); // _blank means export.php opens in a new tab
win.focus;
// Code in export.php
<?php
ob_start();
header("Content-Type: application/octet-stream");
header("Content-disposition: attachment; filename=data.svg");
$svg = $_GET["svg"];
echo stripslashes($svg);
?>
這不工作,雖然,因爲儘管一些SVG的被通過,完整的代碼太長,查詢字符串(或似乎如此)。
有什麼方法可以解決這個問題嗎?我可以使用壓縮,但這隻會將它縮小到極限,我認爲它可能仍然太長 - SVG代碼可能是數百行:(。)
使用POST與請求正文中的字符串。 GET請求通常限於(最多)8KB – Omri
我將如何發送POST數據? – microbug
你將不得不配置你的export.php文件來處理POST數據。您可以將表單數據或JSON,XML發送到發佈數據,無論您想要什麼。 – Omri