Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Javascript+WCF RESTful: CORS ошибка / 16 сообщений из 16, страница 1 из 1
17.08.2015, 11:53
    #39030635
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Есть сервис на http://localhost:8082
и тестовый сайт HTML+js на http://localhost:80

В скрипте попытка обращения к сервису на этом же хосте, но с другим портом.

При попытке соединиться из FF с сервисом дает ошибку

Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на http://localhost:8082/MyRestService/?unique=1439801208281. (Причина: не удалось выполнить запрос CORS).

При попытке сделать то же из IE - всё гут.

Дальше еще смешнее: вырубил сервис, пустил тестовую страницу - та же ошибка.


Куда копать?
...
Рейтинг: 0 / 0
17.08.2015, 12:28
    #39030665
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Access-Control-Allow-Origin
...
Рейтинг: 0 / 0
17.08.2015, 14:19
    #39030728
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
WinnipuhВ скрипте попытка обращения к сервису на этом же хосте, но с другим портом.
другой порт считается как не ваше\другое приложение.
Лучше не делать междоменные запросы (порт = междомен).
...
Рейтинг: 0 / 0
17.08.2015, 15:07
    #39030786
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Petro123WinnipuhВ скрипте попытка обращения к сервису на этом же хосте, но с другим портом.
другой порт считается как не ваше\другое приложение.
Лучше не делать междоменные запросы (порт = междомен).

Есть страница сайта http://host , при нажатии на кнопку скрипт коннектится к WCF сервису http://host:8082 и возвращает данные.
И как тут не делать?

IE работает, FF, Chrome -дают ошибку.

Сделал так, как здесь написано - не помогло:
https://code.msdn.microsoft.com/windowsdesktop/Implementing-CORS-support-c1f9cd4b
...
Рейтинг: 0 / 0
17.08.2015, 15:21
    #39030805
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
в заголовках есть параметр Access-Control-Allow-Origin ?
...
Рейтинг: 0 / 0
18.08.2015, 16:11
    #39031752
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
SharuPoNemnoguв заголовках есть параметр Access-Control-Allow-Origin ?

Я сделал вывод в сервисе, вот что приходит и уходит в ФФ и Хроме

Вот какие запросы приходят и уходят в ФФ и в Хром, сделал вывод в WCF в AfterReceived и BeforeReply

Firefox

-- FF request
*httpRequest.Method*:OPTIONS
*httpRequest.Headers*:Origin: http://localhost
Access-Control-Request-Method: GET
Access-Control-Request-Headers: authorization
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Host: localhost:8082
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/
40.0

— FF Response
*CORS* Method == OPTIONS
*CORS* Headers are modified
*Reply.Headers*:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: DAV, content-length, Allow
Access-Control-Allow-Headers: Authorization, svccontext, Origin, Accept, Over
write, Destination, Content-Type, Depth, User-Agent, Translate, Range, Content-R
ange, Timeout, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Ca
che-Control, Location, Lock-Token
Access-Control-Allow-Methods: ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE
, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH,
PUT, REPORT, SEARCH, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL
Access-Control-Max-Age: 1728000
*--------------------*

Chrome

-- Chrome request
*httpRequest.Method*:OPTIONS
*httpRequest.Headers*:Access-Control-Request-Method: GET
Origin: http://localhost
Access-Control-Request-Headers: accept, authorization
Connection: keep-alive
Accept: */*
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,de;q=0.6,ru;q=0.4,uk;q=0.2
Host: localhost:8082
Referer: http://localhost/RestSamples/Samples/login.html
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like
Gecko) Chrome/44.0.2403.155 Safari/537.36


-- Chrome response
*CORS* Method == OPTIONS
*CORS* Headers are modified
*Reply.Headers*:
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Expose-Headers: DAV, content-length, Allow
Access-Control-Allow-Headers: Authorization, svccontext, Origin, Accept, Over
write, Destination, Content-Type, Depth, User-Agent, Translate, Range, Content-R
ange, Timeout, X-File-Size, X-Requested-With, If-Modified-Since, X-File-Name, Ca
che-Control, Location, Lock-Token
Access-Control-Allow-Methods: ACL, CANCELUPLOAD, CHECKIN, CHECKOUT, COPY, DELETE
, GET, HEAD, LOCK, MKCALENDAR, MKCOL, MOVE, OPTIONS, POST, PROPFIND, PROPPATCH,
PUT, REPORT, SEARCH, UNCHECKOUT, UNLOCK, UPDATE, VERSION-CONTROL
Access-Control-Max-Age: 1728000
...
Рейтинг: 0 / 0
18.08.2015, 16:38
    #39031778
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Я использую такой вызов, может в нем проблема?

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
$.ajax(
	{
		url : url,		
		async : true,
		type : verb,
		dataType : 'json',
		beforeSend : function(req) 
	    {
	        req.setRequestHeader(headerName, header);
	    },	  
	    error: function(jqXHR, textStatus, errorThrown)
	    {
	    	alert(textStatus + ': ' + jqXHR.responseText + '\n' + errorThrown );
	    },
	    success : function(data, textStatus, jqXHR)
	    {	    	
	    	json = JSON.parse(jqXHR.responseText);	
	    	if (headers == true)
	    	{
	    		_this.ContextId = jqXHR.getResponseHeader('CinegyContext');
	    	}
	    	success = true;	    	
	    },
 		complete:function()
 		{                

			if (json)
			{
				if ((json.retCode != 0) && ((json.retCode != 6)))
		    	{
		    		alert(json.error);
		        } 
	        	else if (callback)
	        	{
		        	if (success == true)
		        		callback(json);     	
		        	else 
		        		callback(null);     	
	        	}
        	}
    	}
	});
...
Рейтинг: 0 / 0
18.08.2015, 22:54
    #39031946
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Winnipuh,

type : verb тут что? какой статус от сервера приходит? Вообще странно, что ишак работает, а православный браузер нет.
...
Рейтинг: 0 / 0
19.08.2015, 09:58
    #39032087
skyANA
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
SharuPoNemnogu,

смотря какая версия ишака, они же сначала свой объект запилили для CORS: XDomainRequest.
По теме: в ajaxSettings можно вроде как явно выставит свойство cors в true.
...
Рейтинг: 0 / 0
19.08.2015, 11:46
    #39032179
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
SharuPoNemnoguWinnipuh,

type : verb тут что? какой статус от сервера приходит? Вообще странно, что ишак работает, а православный браузер нет.

verb = GET,

так работает нормально, когда тот же домен
...
Рейтинг: 0 / 0
19.08.2015, 18:41
    #39032709
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Что обнаружил:

так вызов в метод сервиса не доходит

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
	$.ajax(
	{
		url : url,
		async : true,
		type : 'GET',
		dataType : 'json',
		data: {
			alt: 'json-in-script'
		  },		
		beforeSend : function(req) 
	    {
	        req.setRequestHeader("Authorization", header);
	    },	  



Вот так попадает(!)

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
$.ajax(
	{
		url : url,
		async : true,
		type : 'GET',
		dataType : 'jsonp', //<-------------- json->jsonp
		data: {
			alt: 'json-in-script'
		  },		
		beforeSend : function(req) 
	    {
	        req.setRequestHeader("Authorization", header);
	    },	  



Во втором случае приходит сразу запрос GET без предварительного OPTIONS, НО не приходят заголовки, которые я добавил, в частности "Authorization" или мой в другом случае.

Как быть?
...
Рейтинг: 0 / 0
20.08.2015, 13:12
    #39033109
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
WinnipuhЕсть страница сайта http://host , при нажатии на кнопку скрипт коннектится к WCF сервису http://host:8082 и возвращает данные.
И как тут не делать?
Net не знаю, но там разве обязателен другой порт?
Создание WCF сервиса с поддержкой Ajax
http://andrey.moveax.ru/post/wcf-simple-service-with-ajax
?
...
Рейтинг: 0 / 0
20.08.2015, 17:25
    #39033411
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Petro123WinnipuhЕсть страница сайта http://host , при нажатии на кнопку скрипт коннектится к WCF сервису http://host:8082 и возвращает данные.
И как тут не делать?
Net не знаю, но там разве обязателен другой порт?
Создание WCF сервиса с поддержкой Ajax
http://andrey.moveax.ru/post/wcf-simple-service-with-ajax
?

дело не в обязательности, а в том что так бывает, вот тогда и проблема.
То есть сайт на одном хосте, сервис на другом - пипец.

Я сейчас дошел до такого состояния:

Сделал тестовый сервис, с таким же методом, и из того же js клиента делаю вызов.
На тестовом возвращается ответ на OPTIONS и все ок. На реальном тот же скрипт не получает ответа.
...
Рейтинг: 0 / 0
20.08.2015, 17:59
    #39033439
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Winnipuhдело не в обязательности, а в том что так бывает, вот тогда и проблема.
мы же программисты. Почему бывает? Кто писал WCF? Какие есть решения? Почему на поддомен нельзя прицепить?
Это же не нобелевская премия и проблема - сделать по человечески.
IMHO
...
Рейтинг: 0 / 0
24.08.2015, 10:38
    #39034754
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
вчера на пыхе делал, просто отдавал заголовок Access-Control-Allow-Origin и все отлично работает во всех браузерах (современных конечно)
...
Рейтинг: 0 / 0
24.08.2015, 15:07
    #39034980
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Javascript+WCF RESTful: CORS ошибка
Petro123Winnipuhдело не в обязательности, а в том что так бывает, вот тогда и проблема.
мы же программисты. Почему бывает? Кто писал WCF? Какие есть решения? Почему на поддомен нельзя прицепить?
Это же не нобелевская премия и проблема - сделать по человечески.
IMHO

Есть два инсталлятора, один с сервисом, второй с клиентом, и есть юзер который захочет поставить клиента(-ов) на одном сервере, а сервис на другом. И ничего я ему не смогу сделать, так надо(ц)
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Javascript+WCF RESTful: CORS ошибка / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]