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

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

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

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

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

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


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

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

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

Сделал так, как здесь написано - не помогло:
https://code.msdn.microsoft.com/windowsdesktop/Implementing-CORS-support-c1f9cd4b
...
Рейтинг: 0 / 0
Javascript+WCF RESTful: CORS ошибка
    #39030805
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в заголовках есть параметр Access-Control-Allow-Origin ?
...
Рейтинг: 0 / 0
Javascript+WCF RESTful: CORS ошибка
    #39031752
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Javascript+WCF RESTful: CORS ошибка
    #39031778
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использую такой вызов, может в нем проблема?

Код: 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
Javascript+WCF RESTful: CORS ошибка
    #39031946
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

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

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

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

verb = GET,

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

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

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

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

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

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

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


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