Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   XMLHttpRequest возвращает статус 0 (https://javascript.ru/forum/misc/66841-xmlhttprequest-vozvrashhaet-status-0-a.html)

tai 13.01.2017 16:58

XMLHttpRequest возвращает статус 0
 
Добрый день!
Возник вопрос по работе с XMLHttpRequest. Есть сайт https://site.ru/, при входе на который идет обращение к локально установленному приложению. При этом возвращается статус 0 и, соответственно, работа происходит некорректно.

Но если поменять в запросе протокол с https на http, то все работает - статус = 200 и возвращается некий результат (в этом случае есть еще проблема смешанного контента, но я разрешаю браузеру обрабатывать такие ситуации. делается это нажатием на иконку "загрузить небезопасные скрипты" или "разрешить смешанный контент").

Почему "в режиме https" возвращается статус 0 ?

tai 13.01.2017 17:02

Пример кода:
var xhr = new XMLHttpRequest();
					xhr.open('GET', url + paramStr, true);
					xhr.send();

					xhr.onreadystatechange = function() {

                        console.log(xhr.status);
                        console.log(xhr.responseText);

						if (this.readyState != 4) {
							return;
						}
						if (xhr.status == 0) {
							return;
						}
						if (xhr.status == 200) {
							ret = JSON.parse(xhr.responseText);
							action(ret, command, DoneFuncObj);
						} else {
							ret = {
								"success" : -1,
								"message" : "Недопустимый ответ " + xhr.status,
								"data" : xhr.statusText
							};
							DoneFuncObj.funcFail(ret);
						}
					}


Пример значения url + paramStr: https://localhost:3574/module/init?u...ystem_id=admin


При этом, если просто открыть эту ссылку в новом окне браузера, то данный запрос отработает и вернет результат!

laimas 13.01.2017 17:11

В XMLHTTPRequest запрещены запросы с https на http.

TestUser013 13.01.2017 17:14

Может идет кросс доменный запрос (другой домен/порт/протокол)?
Если это все ваши сайты, то можно добавить хидер Access-Control-Allow-Origin


Часовой пояс GMT +3, время: 03:47.