Ben nesnelerin yerel bir dosya olarak kaydedilir javascript istemci tarafında almaya çalışıyorum. Ben bu mümkün olup olmadığından emin değilim.
Temel mimari şudur:
- Bir JSON nesnesi geri almak için ping harici API
- O nesne ile istemci tarafında çalışacak ve sonunda "beni indir" bağlantısı var
- Bu bağlantı bunu işler ve yerel dosyayı indirmek için kullanıcı istemi (gereken) bir mim türü
application/json
, onu geri gönderir, benim sunucu, veri gönderir.
Şu anda burada benim parçalarıdır:
Server Side Code
<?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 . ');';
?>
Relevant Client Side Code
$("#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;
});
Şu anda Firefox ile api.php
siteyi ziyaret ettiğinizde, bu metin dosyasına sonuçların download.json
ve bir indirme sorar, beklendiği gibi:
(["zero","one","two","testing the encoding"]);
Ben AJAX çağrısı çalıştırmak için #download
tıkladığında, bu kundakçı günlükleri
Data Received: testing the encoding
ki ben beklediğiniz hemen hemen budur. Ben, hangi büyük json dize alma ve seri hale ediyorum. Ben iki şey kaçırıyorum:
The Actual Questions
- Ne ben bir tarayıcıda sayfayı ziyaret ettiğinizde ben olsun aynı istemi-to-indirmek davranış almak için ne yapmak gerekiyor
- (Çok basit) Nasıl json nesne serialize sunucusuna gönderiliyor, sunucu tarafı erişebilirim? Ben GET dizide ne dizin bilmiyorum (biliyorum, aptal, ama neredeyse her şeyi denedim)