Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Где ошибка в кроссдоменном запросе? (https://javascript.ru/forum/server/73528-gde-oshibka-v-krossdomennom-zaprose.html)

maxminimus 23.04.2018 17:34

Где ошибка в кроссдоменном запросе?
 
Нужно чтобы js-клиент типа phonegap-приложения делал запрос на некоторый сервер в интернете через XMLHttpRequest, и чтобы производилась базовая аутентификация, и чтобы сервер обратно передавал данные клиенту

Сейчас сервер создает папку но клиент не получает ничего кроме пустого ответа

Где ошибка?

var php_зарегистрироваться = function()
	{
	var запрос = new XMLHttpRequest()
    	запрос.open('POST', 'http://localhost:2222/зарегистрироваться.php')  
    	запрос.withCredentials = true
    	запрос.send()
    	запрос.onreadystatechange = function()
	        {
	          if(запрос.readyState === 4)
	            {
	            	var ответ = запрос.responseText

	            	if(ответ === '')
		            	{
		            		alert('ошибка')
		            	}
		            else
			            {
			            	alert(ответ)
			            }
	            }
	        }
	}


<?php
if(empty($_SERVER['PHP_AUTH_USER']))           
	{	
		header('WWW-Authenticate: Basic realm="WWW-Authenticate"');    
		header ('HTTP/1.0 401 Unauthorized'); 
		exit();                                                
	}

$id = md5($_SERVER['PHP_AUTH_USER'] . $_SERVER['PHP_AUTH_PW']);

//проверка логина и пароля

mkdir($id); 
print "$id";

?>

Rise 23.04.2018 19:33

Например браузеру для принятия кросс-доменных запросов требуются заголовки контроля доступа в ответах сервера. https://learn.javascript.ru/xhr-crossdomain

laimas 23.04.2018 21:36

Цитата:

Сообщение от maxminimus
Где ошибка?

В логике, читайте, что такое базовая аутентификация.

maxminimus 24.04.2018 09:11

Цитата:

Сообщение от Rise (Сообщение 483848)
Например браузеру для принятия кросс-доменных запросов требуются заголовки контроля доступа в ответах сервера. https://learn.javascript.ru/xhr-crossdomain

Проблема в том что мое клиентское приложение не имеет своего адреса (Origin), это не сайт открытый из интернета, это например phonegap-приложение.

Как быть?
Мне нужно простое альтернативное решение.

maxminimus 24.04.2018 11:56

Цитата:

Сообщение от laimas (Сообщение 483852)
В логике, читайте, что такое базовая аутентификация.

Ты наверное не понял:

Этот способ работает нормально и это описано в статье Кантора про кроссдоменные запросы.

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

Но для html-приложения открытого с рабочего стола это невозможно сделать таким способом, видимо, вопрос в этом, надо уточнить.

в phonegap-приложении это наверное можно преодолеть через "белый лист", попробую

laimas 24.04.2018 12:47

Это вы видимо не понимаете, речь то идет о приложении, причем тут кроссдоменность, ajax и т.д.?

Rise 24.04.2018 13:52

maxminimus,
Если нет Origin значит нет и CORS, проблема в чем-то другом.


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