Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.06.2017, 11:03
Новичок на форуме
Отправить личное сообщение для femalemoustache Посмотреть профиль Найти все сообщения от femalemoustache
 
Регистрация: 31.01.2013
Сообщений: 5

Как исправить ошибку «No 'Access-Control-Allow-Origin' header...» при аплоадинге карт
Делаю веб-приложение, которое будет постить картинки в группу. По клику на кнопку открываю попап, запрашивающий разрешение на доступ приложения к фотографиям группы. В ответ приходит access_token, который я использую при вызове 'photos.getWallUploadServer'. На полученный от этого сервиса адрес делаю post-запрос с картинкой. Фрагмент кода, вызывающий ошибку:
VK.Api.call('photos.getWallUploadServer', { group_id: vk.VK_GROUP_ID, access_token: event.data.access_token}, function (answer) {
    this.$http.post(answer.response.upload_url, { photo: this.canvas.toDataURL() }).then(response => {
        console.log(response.body);
    });
}.bind(this));


Вызов 'photos.getWallUploadServer' проходит, в answer.response.upload_url приходит адрес сервера. Но при попытке запостить на него картинку в консоли получаю ошибку:
Код:
XMLHttpRequest cannot load https://pu.vk.com/c837626/upload.php?act=do_add&mid=64545962&aid=-14&gid=14…bfc2a&rhash=b0300dd7aee6d872b0397f6f508e5c57&swfupload=1&api=1&wallphoto=1. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'АДРЕС_ПРИЛОЖЕНИЯ' is therefore not allowed access.
Ответить с цитированием
  #2 (permalink)  
Старый 29.06.2017, 11:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Заголовок Access-Control-Allow-Origin разрешающий доступ к данным передает сервер и клиент никак не может изменить политику стороннего сервера.
Ответить с цитированием
  #3 (permalink)  
Старый 29.06.2017, 11:26
Новичок на форуме
Отправить личное сообщение для femalemoustache Посмотреть профиль Найти все сообщения от femalemoustache
 
Регистрация: 31.01.2013
Сообщений: 5

Сообщение от laimas
Заголовок Access-Control-Allow-Origin разрешающий доступ к данным передает сервер и клиент никак не может изменить политику стороннего сервера.
Это я знаю. Я предполагаю, что возможно не хватает каких-то дополнительных действий. Или суть в том, что с аплоадинг в вк вообще нельзя делать с помощью ajax-запроса с клиента, а нужно выполнять его с сервера (например, с помощью php)?
Ответить с цитированием
  #4 (permalink)  
Старый 29.06.2017, 11:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от femalemoustache
Я предполагаю, что возможно не хватает каких-то дополнительных действий.
Каких действий? В данном случае клиент беспомощен. Речь об API, а значит по идее должно быть разрешение. Но возможно к каким-то конкретным данным даже доступ в рамках API запрещен. Я не в курсе этого.

А вот если запрос к этим данным сделать через свой сервер, то у него таких ограничений нет. Но тут тоже не обязательно можно получить ответ, например запрашиваемый сервер определяет с чего был запрос, с сервера или из под браузера.
Ответить с цитированием
  #5 (permalink)  
Старый 29.06.2017, 11:53
Новичок на форуме
Отправить личное сообщение для femalemoustache Посмотреть профиль Найти все сообщения от femalemoustache
 
Регистрация: 31.01.2013
Сообщений: 5

Сообщение от laimas
Каких действий? В данном случае клиент беспомощен. Речь об API, а значит по идее должно быть разрешение. Но возможно к каким-то конкретным данным даже доступ в рамках API запрещен. Я не в курсе этого.

А вот если запрос к этим данным сделать через свой сервер, то у него таких ограничений нет. Но тут тоже не обязательно можно получить ответ, например запрашиваемый сервер определяет с чего был запрос, с сервера или из под браузера.
Спасибо. Значит буду пробовать серверный вариант.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как исправить ошибку в POST zawm jQuery 3 02.03.2015 20:34
При мульти загрузке дублирует записи в базу. Как можно исправить? makarow.dmitry jQuery 0 20.12.2014 20:16
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25
Как выдавать ошибку при сбросе загрузки страницы? AvaGet Общие вопросы Javascript 2 11.12.2008 19:04