2013-04-10 6 views
2

도메인 "example1.com"에서 페이지를 만들고 다른 도메인 "example2.com/json.json"에서 JSON 파일을 가져 오거나 파싱하고 싶습니다. json 파일을 javascript (example2.com)로 생성 할 수 있습니까? 나는 이것이 PHP로 할 수 있다고 생각하지만, 나는 자바 스크립트로하고 싶다. javascript로 json 파일을 생성 할 수 없다면 javascript 파일에서 객체를 가져 오거나 파싱 할 수 있습니까? EX : "example1.com"to "example2.com/js.js"javascript로 JSON 파일을 생성 할 수 있습니까?

EDIT : 좋아요, 그렇기 때문에 클라이언트 측이므로 javascript 파일에서 개체를 가져 오거나 파싱 할 수 없습니다. 그래서 유일한 옵션은 JSON 파일을 생성하는 것입니다. Javascript로 할 수 있습니까? 아마 최선의 방법은 아니지만, PHP가 아닌 JS에서하고 싶습니다. 이 보안이 becuase하지만

var animal = {name: "cat", sound: "meow"}; 
    json = JSON.stringify(animal); //json is a JSON string 

자바 스크립트를 통해 다른 사이트 (크로스 사이트 스크립팅)에 아약스 호출을 허용하지 않습니다 : 자바 스크립트 JSON 데이터를 할 수 있도록

+0

그래서 서버를 원하는 : 또한

당신이 그것을 생각 루프 당신은 여기에 대해 읽을 수 JSON 형식으로 출력이하거나 출력 데이터 중 다음 자바 스크립트를 사용하여 객체를 생성 할 수 있습니다 JSON을 생성하는 example2.com) JSON 파일을 제공하지만 해당 파일을 * ""using "* Javascript로 제공 하시겠습니까? 서버에서 Javascript를 실행하고 싶습니까? 그렇다면 nodejs가 당신이 원하는 것일 수도 있습니다 - http://nodejs.org/ – Snixtor

+0

JSON 파일을 생성하고 싶지만 자바 스크립트로하고 싶습니다. 그래서 nodejs를 사용해야합니까? –

+0

자바 스크립트를 웹 브라우저가 아닌 다른 곳에서 실행하려면 서버 측 자바 스크립트 구현이 필요합니다. Nodejs는 최근 유명한 예이지만 많은 다른 것들이 있습니다 - http://en.wikipedia.org/wiki/Comparison_of_server-side_JavaScript_solutions – Snixtor

답변

2

JSON 문자열 형식으로 그냥 자바 스크립트 객체이다 위험. 이 규칙을 해결할 수있는 jsonP를 살펴볼 수 있습니다.

또 다른 웹 사이트 나 자체 서버를 호출하여 javascript를 호출 할 수 없습니다. javascript는 클라이언트 브라우저에서만 실행되기 때문에 (node.js와 같은 javascript 서버를 사용하지 않는 한) 어떤 것을 반환 할 수 있습니다. 서버는 어딘가에 요청을 듣고 있어야합니다.

+0

JSON 파일을 만들어야합니다. Javascript로 JSON 파일을 생성하는 방법이 있습니까? –

0

당신은 JSONP를 사용할 수 있습니다 - 본질적으로 콜백 함수에 JSON 포장 domain2.com에과 같이 :

jsonCallback(
    { 
        "sites": 
        [ 
            { 
                "siteName": "JQUERY4U", 
                "domainName": "http://www.jquery4u.com", 
                "description": "#1 jQuery Blog for your Daily News, Plugins, Tuts/Tips & Code Snippets." 
            }, 
            { 
                "siteName": "BLOGOOLA", 
                "domainName": "http://www.blogoola.com", 
                "description": "Expose your blog to millions and increase your audience." 
            }, 
            { 
                "siteName": "PHPSCRIPTS4U", 
                "domainName": "http://www.phpscripts4u.com", 
                "description": "The Blog of Enthusiastic PHP Scripters" 
            } 
        ] 
    } 
); 

는 그런 다음과 같이 domain1.com에서 호출 할 수 있습니다

(function($) { 
var url = 'http://www.jquery4u.com/scripts/jquery4u-sites.json?callback=?'; 

$.ajax({ 
   type: 'GET', 
    url: url, 
    async: false, 
    jsonpCallback: 'jsonCallback', 
    contentType: "application/json", 
    dataType: 'jsonp', 
    success: function(json) { 
       console.dir(json.sites); 
    }, 
    error: function(e) { 
       console.log(e.message); 
    } 
}); 

})(jQuery); 
+0

또한이 게시물은 도움이 될 것입니다! http://www.jquery4u.com/ajax/jquery-php-ajax-json/ –

+0

완벽한 JSON 파일 생성시 유용합니다. 하지만 난 그것을 생성해야하고, 자바 스크립트와 PHP로 생성하고 싶습니다, 그게 가능합니까? –

+0

예제를 조금 더 간단하게 만들 수 있습니다. JSONP는 항상 비동기식이므로 async : false 옵션을 제거하고 데이터를 보내지 않으므로'contentType' 옵션을 제거 할 수 있습니다. –

0

PHP를 JavaScript로 대체 할 수는 없습니다 (NodeJS 같은 것을 가지고 있지 않다면).

PHP를 사용하여 JSON을 생성하면 JSON이 클라이언트에 반환됩니다.

Javascript를 생성하면 JSON이 클라이언트에 자바 스크립트를 반환합니다. 만약 당신이 JSON을 사용하지 않는다고해도 그 점은 없습니다.

정적 JSON 파일 대신 JSON 문서가 서버의 데이터 소스에서 생성되도록하려면 일종의 서버 측 프로그래밍이 필요합니다.

JavaScript를 사용하려면 NodeJS (및 웹 서버와 같은 일부 다른 서비스를 설치하거나 NodeJS를 사용하여 서버를 만들 수 있음)를 설치하고 JSON을 생성하고 제공하는 스크립트를 작성해야합니다.

JSON을 생성하고 (이를 호스트하는 기본 서버를 만드는) 스크립트를 만드는 것이 그렇게 어려운 것은 아닙니다. 노드 설치 및 구성은 더 어려울 수 있습니다.

이미 서버에서 PHP (및 웹 서버)에 액세스 할 수있는 경우이를 사용하십시오.

출력 파일이 정적 파일 (및 실행중인 창) 일 수있는 경우 JScript를 사용하여 정적 파일을 생성 할 수 있습니다. 이렇게하려면 실제로 스크립트를 실행해야합니다 (또는 스크립트를 실행하기 위해 예약 된 작업을 만들 수도 있습니다). 따라서 정적 파일을 새로 생성 된 JSON으로 대체해야합니다. 아마 당신이 원하는 것을 원하지 않을 것입니다!

+0

왜 그런가요? 아직도 자바 스크립트에서 사용할 수있는 객체를 반환 할 것입니까? –

+0

이미 클라이언트에 데이터를 보냈으므로 불필요하게 변환해야하는 이유는 무엇입니까? – NickSlash

+0

나는 이해한다. 그래서 JSON 파일이 필요합니다. 자바 스크립트로 JSON 파일을 생성하는 방법이 있습니까? –

관련 문제