我正在尝试将客户端javascript对象保存为本地文件。我不确定这是否可行。
基本架构是:
application/json
将其发送回来,该mime类型(应该)提示用户在本地下载文件。现在这是我的作品:
服务器端代码
<?php
$data = array('zero', 'one', 'two', 'testing the encoding');
$json = json_encode($data);
//$json = json_encode($_GET['']); //eventually I'll encode their data, but I'm testing
header("Content-type: application/json");
header('Content-Disposition: attachment; filename="backup.json"');
echo $_GET['callback'] . ' (' . $json . ');';
?>
相关客户端代码
$("#download").click(function(){
var json = JSON.stringify(collection); //serializes their object
$.ajax({
type: "GET",
url: "http://www.myURL.com/api.php?callback=?", //this is the above script
dataType: "jsonp",
contentType: 'jsonp',
data: json,
success: function(data){
console.log( "Data Received: " + data[3] );
}
});
return false;
});
现在,当我使用Firefox访问api.php
网站时,它会提示下载download.json
,并按预期生成此文本文件:
(["zero","one","two","testing the encoding"]);
当我点击#download
运行AJAX调用时,它会登录Firebug
Data Received: testing the encoding
这几乎是我所期待的。我收到了JSON字符串并将其序列化,这很棒。我错过了两件事:
实际问题
答案 0 :(得分:2)
window.location
。$_SERVER['QUERY_STRING']
。