Лучшая практика для возврата JSON-ответа между сайтами - PullRequest
2 голосов
/ 11 июня 2009

В настоящее время я работаю над небольшим приложением, которое работает следующим образом:

  • Когда пользователь щелкает ссылку, запускается запрос Ajax GET.
  • Запрос попадает на серверный PHP-скрипт.
  • Сценарий, запрашивающий информацию для другого домена, получает фид JSON.
  • Затем фид возвращается клиенту для анализа.

Я на самом деле не разработчик PHP, поэтому Я ищу некоторые рекомендации по междоменным запросам . В настоящее время я использую file<code>_ get _ contents () для извлечения канала JSON и, хотя он работает, он кажется слабым решением.

Ответы [ 2 ]

3 голосов
/ 11 июня 2009

Сценарий PHP делает что-то кроме простого вызова другого сервера? У вас есть контроль над тем, что возвращает другой сервер? Если вы ответили «Нет» и «Да», вы можете посмотреть JSONP .

2 голосов
/ 11 июня 2009

Возможно, вы захотите абстрагировать процесс поиска в 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...