返回跨站点JSON响应的最佳实践

时间:2009-06-11 00:52:50

标签: php ajax json

我目前正在开发一个像这样工作的小应用程序:

  • 当用户点击链接时,会触发Ajax GET请求。
  • 请求命中服务器端PHP脚本。
  • 该脚本请求另一个域的信息,检索JSON Feed。
  • 然后将订阅源回送给客户端进行解析。

我不是真正的PHP开发人员,所以我正在寻找有关跨域请求的一些最佳做法。我目前正在使用file_get_contents()来检索_ Feed,虽然它功能正常,但它似乎是一个弱解决方案。

2 个答案:

答案 0 :(得分:3)

除了简单地调用其他服务器之外,PHP脚本还能做什么吗?您是否可以控制其他服务器返回的内容?如果答案为否和是,您可以查看JSONP

答案 1 :(得分:2)

您可能希望使用接口在PHP中抽象检索过程,以便在需要时可以交换实现。这是一个天真的例子:

interface CrossSiteLoader 
{
    public function loadURL($url);
}

class SimpleLoader implements CrossSiteLoader
{
    public function loadURL($url)
    {
        return file_get_contents($url);
    }
}

如果您需要使用自己的数据进行本地测试,那么您可以派上用场,因为您可以使用测试实现:

public ArrayLoader implements CrossSiteLoader
{
    public function loadURL($url)
    {
        return json_encode(array('var1' => 'value1', 'var2' => 'value2'));
    }
}

或者您只想将file_get_contents更改为curl

之类的内容