Задать вопрос

Как получить JSON через Ajax post запрос от php с чужого домена?

Вот здесь лежит демка ipi Яндекс карт

Нужно с этого адреса http://www.freeway.by/ajax/element_list.php получить Json на js со списком объектов для города Гомель и чтобы объекты отобразились на карте в примере выше

Помогите написать js код для реализации !
  • Вопрос задан
  • 2276 просмотров
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
@davidnum95
var settings = {
  "async": true,
  "crossDomain": true,
  "url": "http://www.freeway.by/ajax/element_list.php",
  "method": "POST",
  "headers": {
    "content-type": "application/x-www-form-urlencoded",
    "cache-control": "no-cache",
  },
  "data": {
    "data1": "{\"=PROPERTY_49\":[\"\\u0413\\u043e\\u043c\\u0435\\u043b\\u044c\"],\"=PROPERTY_50\":[\"51\",\"42\",\"47\",\"46\",\"49\",\"48\",\"43\",\"44\",\"40\",\"41\",\"45\",\"50\"],\"=PROPERTY_6\":[\"29\",\"31\",\"30\"],\"toilet_avail\":\"2\"}"
  }
}

$.ajax(settings).done(function (response) {
  console.log(response);
});
Ответ написан
Комментировать
EvgeniyKvasyuk
@EvgeniyKvasyuk
Если ты пытаешься обратиться с одного домена через ajax на другой, то такой запрос будет зафейлен, потому, что является кроссдоменным и в большинстве случаев такие запросы запрещаются по соображениям безопасности. Для кросс-доменных запросов можно использовать технологии JSONP или CORS. Но и сервер со своей стороны должен их поддерживать.
Ответ написан
Комментировать
www.freeway.by/ajax/element_list.php:
function run(){
$data = ['x'=>'y'];
header('Content-Type: application/json');
echo json_encode($data);
}


$.ajax({
        url: "http://www.freeway.by/ajax/element_list.php"
    }).done(function(data) {
        objectManager.add(data);
    });
Ответ написан
@Brother79Mail
Если второй домен под вашим контролем, то там есть параметр в хедере запроса, который можно настроить на разрешение запросов с какихто конкретных доменов или со всех. Если ннт контроля к другому домену, то можно только такое сделать для конкретного браузера, запущеного конкретно с вашего компа локально особым образом, так чтобы это был публичный сайт и ходил аяксом на чужие домены как писали выше - не выйдет, только пути обхода которык не универсальные
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы