2015-10-29 1 views
2

Я делаю приложение Ionic, которое обращается к сайту Wordpress с использованием плагина WP REST API V2. Учитывая этот код в мой контроллер:

$http.get('http://www.greenfundsuriname.org/wp-json/wp/v2/posts/3701').then(function(response) { 
    $log.log(response); 
}); 

$http.get('http://www.greenfundsuriname.org/wp-json/wp/v2/posts/').then(function(response) { 
    $log.log(response); 
}); 

я получаю две совершенно прекрасные ответы на моей локальной машине и в тренажере IOS см:

http://f.cl.ly/items/2k213k0s3W3N300y130F/simulator.png

На моем реальном устройстве, отдельные почтовые работы хорошо, но сообщения URL дает мне пустой массив в качестве ответа данных:

http://f.cl.ly/items/2a241e1p3a013914382U/device.png

Как это Тхи возможно?

+0

Успели получить такое же поведение в браузере: http://codepen.io/lensco/pen/meKEqP (первая кнопка возвращает пустой ответ массива, но API URL имеет содержание) –

+0

Ваше кодовое перо, похоже, отлично работает для меня. – Sam

+0

Так что, видимо, эта работа для нескольких других людей. Я попытался увеличить тайм-аут $ http, я подтвердил JSON, я попробовал его в другом месте в другой (более быстрой) сети, это не имеет значения. Маршрут API сообщений отлично работает в моем браузере, но возвращает пустой массив при доступе через Angular $ http. Другие маршруты API в порядке. Ну, я буду проклят. –

ответ

0

Выключает один из заголовков запроса, вызвавший это. Поскольку мой язык ОС установлен на голландский, заголовок Accept-Language запрашивает голландские сообщения в Wordpress. Wordpress правильно вернул пустой массив. Другие люди, чья ОС установлена ​​на английский, получают все английские сообщения Wordpress. Решено это следующим образом:

$http.get(url, { 
    headers: {'Accept-Language': 'en-US,en;q=0.8,nl;q=0.6'} 
}); 
Смежные вопросы