【问题标题】:Best Practice for returning cross-site JSON response返回跨站 JSON 响应的最佳实践
【发布时间】:2009-06-11 00:52:50
【问题描述】:

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

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

我并不是真正的 PHP 开发人员,所以 我正在寻找一些关于跨域请求的最佳实践。我目前正在使用file_get_contents() 来检索JSON 提要,虽然它很实用,但它似乎是一个弱解决方案。

【问题讨论】:

    标签: php ajax json


    【解决方案1】:

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

    【讨论】:

      【解决方案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 之类的东西

      【讨论】:

        猜你喜欢
        • 2015-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-15
        • 2020-09-30
        • 1970-01-01
        • 2014-06-16
        相关资源
        最近更新 更多