& quot; В запрашиваемом ресурсе отсутствует заголовок ‘Access-Control-Allow-Origin’ & quot; ошибка при отправке запроса в Jawbone UP API

Я создал пользовательскую базу данных, которую я хотел бы заполнить некоторыми из моих данных UP3. Я успешно прошел аутентификацию и получил ответ JSON с моим токеном на предъявителя. Отсюда я как бы потерялся.

Из документации мне нужно отправить запрос GET

https://jawbone.com/nudge/api/v.1.1/users/@me

Каждый раз, когда я делаю, я получаю:

В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin»

Я добавил:

header('Access-Control-Allow-Origin: http://example.com');

(замена example.com моим доменом)

на страницу, которая отправляет запрос GET. Какие-нибудь мысли?

1

Решение

Все конечные точки Jawbone имеют заголовок CORS, установленный в

Access-Control-Allow-Origin: *

Однако это по-прежнему не разрешает межсайтовые запросы от localhost (спасибо @TirthrajBarot за объяснение в комментариях), поэтому вам следует отключить эту проверку в Chrome с помощью чего-то вроде Расширение Access-Control-Allow-Origin.

0

Другие решения

После аутентификации пользователя и разрешений я перенаправляю на другую страницу для проверки кода аутентификации и получения токена доступа. Оттуда я перехожу на другую страницу, чтобы отправить запрос GET для данных. Вот код, который работает:

    $url = "https://jawbone.com/nudge/api/v.1.1/users/@me/sleeps?" . $sleepDate;

$options = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept: application/json\r\n" .
"Authorization: Bearer " . $accessToken . "\r\n" .
"Host: {my website}")
);

$context = stream_context_create($options);
$sleepData = @file_get_contents($url, false, $context);

Данные возвращаются, декодируются и обрабатываются. Результат помещается в текстовое поле в форме, которую пользователь может редактировать при желании. Также есть кнопка для ввода данных в базу данных (вместе с кучей скрытых полей формы, которые вводят другие важные данные)

0

По вопросам рекламы [email protected]