로컬로 파일로 저장된 클라이언트 측 javascript 객체를 가져 오려고합니다. 이것이 가능한지 확실하지 않습니다.JSONP를 사용하여 클라이언트 측 JavaScript 객체를 다운로드하는 방법은 무엇입니까?
- 핑은 "나를 다운로드"가 결국 JSON 객체 객체와
- 작업 클라이언트 측을 다시 얻고, 위해 외부 API 링크
- 이를 :
기본 구조는 이것이다 링크는 데이터를 처리하는 서버로 데이터를 보내고 mime 유형
application/json
으로 다시 전송합니다. 사용자는 파일을 로컬로 다운로드하라는 프롬프트를 표시해야합니다.
오른쪽은 지금 여기 내 조각입니다 :
서버 측 코드
<?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 . ');';
?>
관련 클라이언트 측 코드 지금 나는 api.php
사이트를 방문 할 때
$("#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;
});
파이어 폭스, 그것은 download.json
의 다운로드하라는 메시지를 표시하고 그 예상대로,이 텍스트 파일에 결과 :
(["zero","one","two","testing the encoding"]);
을 내가 AJAX 호출을 실행하는 #download
을 클릭하면, 거의 무엇 인 방화범
Data Received: testing the encoding
에 로그인 나는 기대하고 싶다. JSON 문자열을 받고 serialize하는 중입니다.
실제 질문 내가 브라우저에서 페이지를 방문 할 때 내가 얻을 같은 프롬프트 - 투 - 다운로드 동작을 취득 할 필요가 무엇
- : 나는 두 가지를 누락
- (훨씬 간단합니다.) json 객체를 직렬화하기 위해 서버로 보내지는 서버 측에 어떻게 액세스합니까?