Javascript: проблемы междоменных запросов JSON - PullRequest
3 голосов
/ 29 июля 2011

Я пытаюсь запросить JSON из Google Places API, но по-прежнему получаю ошибку междоменного запроса после первого включения:

<?php 
header('Access-Control-Allow-Origin: *');
header("Access-Control-Allow-Methods: POST, GET");
header("Access-Control-Allow-Headers: x-requested-with");
?>

Используемый мной запрос JSON является стандартным JQuery:

function load() {
    var url = 'https://maps.googleapis.com/maps/api/place/details/json?reference=CnRhAAAARMUGgu2CeASdhvnbS40Y5y5wwMIqXKfL-n90TSsPvtkdYinuMQfA2gZTjFGuQ85AMx8HTV7axABS7XQgFKyzudGd7JgAeY0iFAUsG5Up64R5LviFkKMMAc2yhrZ1lTh9GqcYCOhfk2b7k8RPGAaPxBIQDRhqoKjsWjPJhSb_6u2tIxoUsGJsEjYhdRiKIo6eow2CQFw5W58&sensor=true&key=xxxxxxxxxxxxxx';
    $.ajax(url, {
       async:   true,
       success: function(data, textStatus, jqXHR) {
           dump(data);
       }
    });
}

Я бы вместо этого использовал запрос JSONP, но API Google Адресов не поддерживает JSONP ... как я могу решить эту проблему?С прокси сервером?Я не уверен, как это сделать или что я делаю неправильно.

1 Ответ

4 голосов
/ 29 июля 2011

URL, к которому вы запрашиваете данные из , должен предоставить разрешение с заголовками контроля доступа. Это победит объект той же политики происхождения, если удаленный источник может дать разрешение самому себе!

Если используемый вами API не предоставляет JSON-P API и не устанавливает сами заголовки контроля доступа, вам необходимо использовать прокси. Либо тот, который вы запускаете самостоятельно, либо сторонний, который преобразует в JSON-P (например, YQL ).

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