Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.11.2017, 18:53
Новичок на форуме
Отправить личное сообщение для rogodessa Посмотреть профиль Найти все сообщения от rogodessa
 
Регистрация: 27.09.2014
Сообщений: 7

Помогите c обходом CORS
Всем доброго времени суток!

Редко прошу помощи помощи на форумах, но уже сил нет искать решение.

Суть вопроса: отправляю запрос через ajax, в ответ получаю блокировку по причине - No 'Access-Control-Allow-Origin' header is present on the requested resource.

Код с аяксом

$.ajax({
				url: url,
				dataType: 'json',
				type: 'GET',
				async: false,
				crossDomain: true,
				cache:false,
				headers: {
                    'Access-Control-Allow-Origin': '*'
                },
				complete: function (data,status,XHR) {
					console.log(data)
				},
				error:function(jqXHR, textStatus, errorThrown){
					console.log(jqXHR);
					console.log(textStatus);
					console.log(errorThrown);
				}
			});


пример ссылки куда отправляю запрос __https://api.openload.co/1/file/dl?file=st_pJ9IrdpQ&ticket=st_pJ9IrdpQ~6ad74ad4258 33d50~1511105366~def~F8R1rW64_fhOKxW0~1~zwPU4n9W4u caGyqf&captcha_response=c417

В ответ приходят JSON данные.



Можно ли как-то обойти это блокировку и вернуть в браузер ответ?

Заранее спасибо за любые советы!
Ответить с цитированием
  #2 (permalink)  
Старый 19.11.2017, 19:04
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

Access-Control-Allow-Origin': '*' к чему этот заголовок ? вы сервер?
Ответить с цитированием
  #3 (permalink)  
Старый 19.11.2017, 19:08
Новичок на форуме
Отправить личное сообщение для rogodessa Посмотреть профиль Найти все сообщения от rogodessa
 
Регистрация: 27.09.2014
Сообщений: 7

Нет )) Это мои пробы... не убрал.

Да, кстати, забыл написать... Решение путем отправки запроса на свой сервак, и получение ответом чрез PHP не подходит, т.к. запрос привязан IP .
Ответить с цитированием
  #4 (permalink)  
Старый 19.11.2017, 19:42
Новичок на форуме
Отправить личное сообщение для rogodessa Посмотреть профиль Найти все сообщения от rogodessa
 
Регистрация: 27.09.2014
Сообщений: 7

Сейчас делаю запрос с такими параметрами

$.ajax({
				url: url,
				dataType: 'jsonp',
				type: 'GET',
				async: false,
				crossDomain: true,
				cache:false,
				contentType: "application/json; charset=utf-8",
				complete: function (data) {
					console.log( data )
				},
				error:function(jqXHR, textStatus, errorThrown){
					console.log(jqXHR);
					console.log(errorThrown);
				}
			});


т.е. при смене dataType в jsonp и указании contentType

блокировки нет, но теперь есть ошибка

Ответить с цитированием
  #5 (permalink)  
Старый 19.11.2017, 19:55
Кандидат Javascript-наук
Отправить личное сообщение для Lion777 Посмотреть профиль Найти все сообщения от Lion777
 
Регистрация: 04.11.2017
Сообщений: 117

странно... А должно так работать ?
Ответить с цитированием
  #6 (permalink)  
Старый 20.11.2017, 02:41
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Если конечный сервер не разрешает загрузку с себя тем самым хэдером или предоставляя jsonp, то напрямую вы не получите ответ никак. Вообще.
Тут потребуется либо договариваться с сервисом, что самый правильный но и самый утопичный вариант, либо использовать прокси. В качестве прокси лучше само собой свой сервер, но если очень надо и пофиг на зависимости и долговременную перспективу, то можно воспользоваться например сервисом yahoo:
<script>
getByYahoo(
	'https://api.openload.co/1/file/dl?file=st_pJ9IrdpQ&ticket=st_pJ9IrdpQ~6ad74ad425833d50~1511105366~def~F8R1rW64_fhOKxW0~1~zwPU4n9W4ucaGyqf&captcha_response=c417', 
	function (json){
		alert(JSON.stringify(json, 0, '\t'))
	}
)
function getByYahoo(url, callback){
	var key = 'callback' + (Math.random() * 1e8 | 0);
	window[key] = callback;
	var script = document.createElement('script');
	script.onload = function(){
		script.parentNode.removeChild(script);
		delete window[key]
	}
	script.error = function(){
		script.onload();
		callback(false);
	}
	script.src = 'http://query.yahooapis.com/v1/public/yql?q=' 
		+ encodeURIComponent('select * from json where url="' + url + '"')
		+ '&format=json&callback=' + key;
	document.documentElement.appendChild(script);
}
</script>
__________________
29375, 35
Ответить с цитированием
  #7 (permalink)  
Старый 20.11.2017, 10:25
Аспирант
Отправить личное сообщение для mikello Посмотреть профиль Найти все сообщения от mikello
 
Регистрация: 18.11.2017
Сообщений: 68

вопрос: а без CORS не получится скачать контент с сервера?
Ответить с цитированием
  #8 (permalink)  
Старый 20.11.2017, 15:12
Интересующийся
Отправить личное сообщение для jerseybb Посмотреть профиль Найти все сообщения от jerseybb
 
Регистрация: 17.11.2017
Сообщений: 10

Запрос привязан к IP, но нельзя сделать запрос через свой сервер? А если сервер на том же IP? PHP/Node.js?

Еще не совсем понятно, откуда именно и с помощью чего делается запрос. Через GM_xmlhttpRequest Greasemonkey/Tampermonkey или свое расширение не вариант?
Ответить с цитированием
  #9 (permalink)  
Старый 20.11.2017, 18:22
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,480

Сообщение от mikello Посмотреть сообщение
вопрос: а без CORS не получится скачать контент с сервера?
Чистым клиентом - нет. История старая как мир. Если сервер не разрешает, то на клиенте с левого сайта не получить конетент никак. Контент можно воспроизвести: картинки там, видео, скрипты, но получить содержимое для обработки - нет. Конец истории.
__________________
29375, 35
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с попап окном 3168424 Javascript под браузер 2 29.01.2014 16:20
Помогите с таймером и окошком! xXapokalypsesXx Общие вопросы Javascript 4 07.06.2012 01:12
Помогите с наследованием develka Общие вопросы Javascript 1 06.06.2012 09:50
Помогите! Многоуровневые вкладки! sergeeeeee Элементы интерфейса 2 02.08.2010 23:50
помогите задать селектор! mkrylov jQuery 2 28.06.2009 20:34