2011-12-01 4 views
2

은 이것을 알아 내려고 몇 시간을 보냈지 만 나에게 잘못된 일이 무엇인지 알아낼 수는 없습니다.외부 JSON은 어떻게 사용합니까?

내가 할 노력하고있어 모든이를로드 할 수 있습니다 :

내가 JSON,로 ​​중 자바 스크립트/JQuery와 또는 PHP이라고 생각하고 데이터를 사용
https://recruit.zoho.com/ats/EmbedResult.hr?jodigest=2cV.Sr2As6VxhLMxQGuTNij*g.Fb3J7ysduDs.AC9sU-&atslocale=en_GB&rawdata=json 

.

jsonp을 살펴본 다음 자습서를 따라 템플릿으로 데모를 사용했지만 위의 데이터가 작동하지 않습니다.

누군가가 빛을 비추면 많은 도움이 될 것입니다. 정말이게 복잡해서는 안되지만, 어떤 일이 잘못 될지 모르겠습니다.

+0

질문에 대한 자세한 내용이 필요합니다. 귀하의 코드를 보여주십시오. 그러나 난폭 한 추측으로, 당신은 아마도 도메인 간 보안 제한을 겪고 있다고 말할 수 있습니다. –

+0

그것은 모집 웹 사이트입니다, 나는 5 개의 최신 채용 정보를 보여 주려고합니다. 솔직히 말해서 위의 링크로 튜토리얼과 데모를 복사하려고했습니다. –

답변

6

예, JSON입니다. 이 사이트는 JSONP를 지원하지 않을 수 있으므로 PHP를 사용해야합니다.

테스트되지 않았지만 작동해야합니다.

<?php 
$url = 'https://recruit.zoho.com/ats/EmbedResult.hr?jodigest=2cV.Sr2As6VxhLMxQGuTNij*g.Fb3J7ysduDs.AC9sU-&atslocale=en_GB&rawdata=json'; 
$JSON = file_get_contents($url); 

// echo the JSON (you can echo this to JavaScript to use it there) 
echo $JSON; 

// You can decode it to process it in PHP 
$data = json_decode($JSON); 
var_dump($data); 
?> 
+0

감사합니다! 올바른 방향으로 나아가는 단계 인 것 같습니다. 이상적으로 PHP에서 사용할 수 있다면 유용 할 것이지만 var_dump는 null을 반환합니다 ... 잘 작동하므로 JS를 사용할 수 있습니다. –

+0

@DerekHo : 이상한, 어쩌면 좋아하지 않는 캐릭터가 있을지 모르겠습니다. –

+0

실제 데이터를 디코딩하고 덤프 할 수 있습니다 ($ JSON = 'data'라고 말한 경우) ...하지만 $ JSON = file_get_contents ($ url)을 디코딩하고 덤프 할 수 없습니다. 매우 이상한 ... –

5

JSONP relies on the server to return a JSONP formatted response. 기본적으로 JSONP를 사용하려면 서버가 함수 호출에 랩핑 된 JSON 문자열을 반환해야합니다 ({"foo":1}func({"foo":1})이됩니다).

사용중인 서버가 JSONP 응답을 반환하지 않으므로 은 JSONP 만 사용할 수 있습니다. JSON 만 사용할 수 있습니다.

same origin policy (SOP)으로 인해 JSON을 x 도메인으로 사용할 수 없으므로 이는 수치스러운 일입니다. 따라서 유일한 옵션은 프록시 서버를 사용하여 서버에서 JSON을 검색하고 JSONP (Yahoo Pipes 참조) 또는 요청한 페이지와 동일한 도메인에있는 프록시 서버를 사용하는 것입니다. PHP 스크립트는 file_get_contents()을 사용하여 파일을 가져온 다음 echo 출력을 사용합니다.이 경우 JSON을 반환 할 수 있습니다.

+0

정보를 제공해 주셔서 감사합니다. –

0

나는 requirements 보았다 breifly 및 API 키뿐만 아니라 계정이 필요 것 같습니다. 사이트에서 XML 및 JSON에 대한 서비스 만 제공한다는 것을 알았습니다. 그것은 꽤 잘 문서화 된 것으로 보인다.

+0

불행히도 jquery 모듈을 사용하고 사용자 정의하는 것 이상의 JS에 대한 많은 경험이 없었습니다. –