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

В настоящее время я пытаюсь получить видео с частного канала Dailymotion в своем личном приложении.

Для этого я пытаюсь пройти аутентификацию в API Dailymotion, используя метод grant_type : password.

Вот мой POST-запрос:

xhr.open('POST', 'https://api.dailymotion.com/oauth/token', true);
xhr.setRequestHeader('Content-Type', 'multipart/form-data');
xhr.onload = function(e) {	
	console.log("HEADERS", e.target.getAllResponseHeaders())
	if (e.target.status < 400) {
		console.log(e);
	} else {
		console.log("error")
	}
};
xhr.onerror = function(e) {
	console.log("HEADERS", e.target.getAllResponseHeaders())
};
xhr.send('grant_type=password&client_id=<MyAPIKey>&client_secret=<MyAPISecret>&username=<MyUserName>&password=<MyPassword>');

Я получаю следующую ошибку: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».

Я проверил заголовок ответа, и Access-Control-Allow-Origin отсутствует. Я не могу добавить этот параметр на сервер API, потому что запрашиваю серверы Dailymotion...

Итак, мой вопрос: можно ли настроить приложение Dailymotion (на которое ссылается мой ключ API) для приема моего запроса из моего частного домена или есть способ обойти проблему «Access-Control-Allow-Origin».

Заранее спасибо !


person Louis Lucas    schedule 15.02.2018    source источник
comment
Вы тестируете с локального хоста?   -  person Naramsim    schedule 15.02.2018


Ответы (2)


В обычных браузерах невозможно обойти Access-Control-Allow-Origin.

Возможно, Dailymotion разрешает только определенные домены или просто запрещает локальный хост.

person Naramsim    schedule 15.02.2018
comment
Я не использую локальный хост. Мое приложение находится внутри Offie 365. Мой домен — ‹mydomain›.SharePoint.com. - person Louis Lucas; 15.02.2018
comment
хорошо, если в Dailymotion полностью отсутствует этот заголовок, вы ничего не можете сделать из своего браузера с помощью XHR. - person Naramsim; 15.02.2018
comment
Почему бы вам не попробовать их официальный SDK вместо необработанных вызовов? developer.dailymotion.com/tools/sdks#sdk-javascript - person Naramsim; 15.02.2018
comment
Есть ли другой вариант, кроме использования XHR, который решит мою проблему? - person Louis Lucas; 15.02.2018
comment
Ну, я попробовал с их JS SDK. Но я не могу войти с определенным именем пользователя и паролем. - person Louis Lucas; 15.02.2018
comment
Вы на самом деле не можете с вашими учетными данными! Вы должны получить ключ от них. Вы должны зарегистрировать приложение: developer.dailymotion.com/api - person Naramsim; 15.02.2018
comment
Да, я зарегистрировал свое приложение, и у меня есть ключ API и секрет API. Но проблема в том, что мне нужно получить видео с частного канала, к которому может получить доступ только один пользователь. Вот почему я пытаюсь аутентифицироваться как этот пользователь, чтобы иметь возможность извлекать эти частные видео и отображать их в своем приложении. - person Louis Lucas; 15.02.2018
comment
я не думаю, что ты можешь - person Naramsim; 15.02.2018

Поскольку заголовок Access-Control-Allow-Origin (и все остальные заголовки CORS) являются заголовками response, вы не можете ими управлять.

Этот код работает в браузере? Если это так, подтвердите отправку заголовка запроса Origin. Если он не запущен в браузере, попробуйте добавить заголовок запроса Origin к вашему запросу и посмотрите, не приведет ли это к включению сервером заголовков ответов CORS.

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

person roryhewitt    schedule 15.02.2018
comment
Чем вам за ваш ответ. Я уже подтвердил, что заголовок моего запроса содержит Origin, но, к сожалению, ответ не содержит «Acces-Control-Allow-Origin». Я попробую еще раз с их sdk ... - person Louis Lucas; 16.02.2018