我如何使用外部JSON ......?

时间:2011-12-01 16:18:27

标签: php javascript jquery json cross-domain

花了几个小时试图解决这个问题,但不能为我的生活弄清楚出了什么问题。

我要做的就是加载它:

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

我相信是json,可以使用javascript / jquery或php并使用数据。

我查看了jsonp,接着是一些教程,使用了一些演示作为模板,但是无法使上述数据生效。

如果有人可以解决一些问题,我将不胜感激。这真的不应该是这么复杂,但我不知道出了什么问题。

3 个答案:

答案 0 :(得分:7)

是的,那是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);
?>

答案 1 :(得分: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-domain。因此,您唯一的选择是使用代理服务器,它从服务器检索JSON,并在JSONP中提供给您(请参阅Yahoo Pipes),或者与请求的页面位于同一个域中(编写一个简单的PHP脚本来使用file_get_contents()获取文件,然后输出echo),在这种情况下它可以返回JSON。

答案 2 :(得分:0)

我简明地看了requirements,看起来你需要一个API密钥和一个帐户。我看到该站点仅提供XML和JSON服务。它看起来相当完整。