Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Web > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 13.02.2016, 16:56   #1
Valtasaar
 
Аватар для Valtasaar
 
Регистрация: 27.11.2015
Сообщений: 9
Репутация: 10
По умолчанию AJAX запрос с авторизацией

Доброго всем!
Пытаюсь получить данные с сайта, на котором не зарегистрирован, но есть токен.

Код:
$.ajax({
        beforeSend: function (xhr) {
            xhr.setRequestHeader ('Authorization', 'токен');
        },
        headers: {
            'Authorization': 'токен'
        },
        type: 'get',
        url: "урл",
        dataType: 'json',
        success: function(results){
            console.log(results);
        }
    })
Ошибка получается:
Цитата:
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на "УРЛ". (Причина: отсутствует заголовок CORS 'Access-Control-Allow-Origin').
Как правильно этот запрос сделать?
Valtasaar вне форума   Ответить с цитированием
Старый 14.02.2016, 00:28   #2
CodeNOT
Участник клуба
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
Репутация: 188
По умолчанию

Собственно вы из браузера и не сможете отослать запрос, если на стороне сервера не прописаны заголовки, в частности он хочет Access-Controll-Allow-Origin: *

решение простое, проксировать запрос, на тот же php, там с помощью curl получить авторизацию и через нее дальше уже слать запросы
CodeNOT вне форума   Ответить с цитированием
Старый 14.02.2016, 13:50   #3
Valtasaar
 
Аватар для Valtasaar
 
Регистрация: 27.11.2015
Сообщений: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от CodeNOT Посмотреть сообщение
Собственно вы из браузера и не сможете отослать запрос, если на стороне сервера не прописаны заголовки, в частности он хочет Access-Controll-Allow-Origin: *

решение простое, проксировать запрос, на тот же php, там с помощью curl получить авторизацию и через нее дальше уже слать запросы
а без php? Дело в том, что данные получаются от RESTful API при помощи ангуляра или жиквайера и мне нужно тоже получить оттуда данные.

Заменил дата тайп на jsonp, ошибка ушла. Но полученные данные никак не идентифицируются. Появилась ошибка GET.
Valtasaar вне форума   Ответить с цитированием
Старый 14.02.2016, 18:52   #4
Fenex
Участник клуба
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
Репутация: 439
По умолчанию

Если API расчитан на отдачу данных в сторонние сервисы, то по идеи заголовок кроссдоменного запроса должен отсылать.

А сам API сервиса поддерживает отдачу в формате jsonp?

Вы никак не сможете сделать запрос с одного домена на другой, пока последний специально не разрешит этого сделать (путём добавления вашего домена в заголовок Access-Controll-Allow-Origin).
__________________
^-.-^ Клавогонки.ру - набирай скорость!
Fenex вне форума   Ответить с цитированием
Старый 14.02.2016, 19:13   #5
Naive
Раздолбайских Дел
Профессионал
 
Аватар для Naive
 
Регистрация: 22.05.2009
Адрес: Екатеринбург
Сообщений: 3,808
Репутация: 2359
По умолчанию

можно в браузере поставить разрешение на кроссдоменку)
__________________
Работаю. В этот раз за деньги.
Жду ваши искренние спасибы на яндекс-кошелек: 410011068154587
Naive вне форума   Ответить с цитированием
Старый 14.02.2016, 19:23   #6
Fenex
Участник клуба
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
Репутация: 439
По умолчанию

Цитата:
Сообщение от Naive Посмотреть сообщение
можно в браузере поставить разрешение на кроссдоменку)
Радикальное решение, однако.
Ещё можно сделать расширение, которое будет проксировать конкретные запросы в браузере: никакого сервера, никакого PHP, никакой чепухи :D.
__________________
^-.-^ Клавогонки.ру - набирай скорость!
Fenex вне форума   Ответить с цитированием
Старый 15.02.2016, 16:23   #7
Valtasaar
 
Аватар для Valtasaar
 
Регистрация: 27.11.2015
Сообщений: 9
Репутация: 10
По умолчанию

Немного видоизменил код, ошибка пропала

Код:
$.ajax({
        beforeSend: function (xhr) {
            xhr.setRequestHeader ('Authorization', 'токен');
        },
        headers: {
            'Authorization': 'токен'
        },
        type: 'get',
        url: "урл",
        crossDomain: true,
        dataType: 'jsonp',
        success: function(results){
            console.log(results);
        }
    })
Но соединение не устанавливается:
Миниатюры
Нажмите на изображение для увеличения
Название: conn.jpg
Просмотров: 54
Размер:	25.1 Кб
ID:	79684  
Valtasaar вне форума   Ответить с цитированием
Старый 15.02.2016, 17:38   #8
CodeNOT
Участник клуба
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
Репутация: 188
По умолчанию

судя по ошибке 405 метод не поддерживается
CodeNOT вне форума   Ответить с цитированием
Старый 15.02.2016, 17:38   #9
CodeNOT
Участник клуба
 
Аватар для CodeNOT
 
Регистрация: 08.11.2010
Сообщений: 593
Репутация: 188
По умолчанию

если запрос ручками послать он проходит?
CodeNOT вне форума   Ответить с цитированием
Старый 15.02.2016, 18:40   #10
Valtasaar
 
Аватар для Valtasaar
 
Регистрация: 27.11.2015
Сообщений: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от CodeNOT Посмотреть сообщение
судя по ошибке 405 метод не поддерживается
Метод это тип получаемых данных?

Цитата:
Сообщение от CodeNOT Посмотреть сообщение
если запрос ручками послать он проходит?
Стесняюсь спросить, это как?

Если вернуть дататайп в json, то получается ошибка
Цитата:
Причина: отсутствует заголовок CORS 'Access-Control-Allow-Origin'
И:
Миниатюры
Нажмите на изображение для увеличения
Название: conn2.jpg
Просмотров: 52
Размер:	28.7 Кб
ID:	79686   Нажмите на изображение для увеличения
Название: conn2.1.jpg
Просмотров: 55
Размер:	26.3 Кб
ID:	79687  

Последний раз редактировалось Valtasaar; 15.02.2016 в 18:43.
Valtasaar вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ajax+php запрос Alex2213 JavaScript, Ajax 2 27.07.2015 21:30
Ajax запрос (jQuery) Newpitbull JavaScript, Ajax 3 14.04.2012 21:25
ajax запрос в jquery Qaliti JavaScript, Ajax 7 06.03.2012 23:20
Ajax Запрос moqa JavaScript, Ajax 10 28.12.2011 10:46
Повторяющийся ajax запрос aferistz JavaScript, Ajax 1 06.07.2011 17:57


03:35.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.