2011-12-01 33 views
2

花了几个小时试图弄清楚这一点,但不能为我的生活找出什么问题。如何使用外部JSON ...?

所有我想要做的是加载此:

https://recruit.zoho.com/ats/EmbedResult.hr?jodigest=2cV.Sr2As6VxhLMxQGuTNij*g.Fb3J7ysduDs.AC9sU-&atslocale=en_GB&rawdata=json 

我相信这是JSON,无论是成使用Javascript/jQuery的或php和使用这些数据。

我已经研究过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

感谢您的信息,仍然让我的头在json附近。 –

0

我breifly看了看requirements,它看起来像你需要一个API密钥和一个帐户。我看到该网站仅提供XML和JSON服务。它看起来是相当有据可查的。

+0

不幸的是我没有太多的使用和定制jquery模块的经验 –

相关问题