Yertuwernat
@Yertuwernat
Кратко о себе: живу в России, не женат, характер

Как сделать кроссдоменный ajax-запрос?

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

Нужно чтобы этот js-клиент делал запрос на некоторый сервер в интернете через 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";  //это не доходит до клиента

?>
  • Вопрос задан
  • 218 просмотров
Решения вопроса 1
Minifets
@Minifets
Hello world!!!
Браузер блочит cross-domain запросы (кроме GET). Чтобы браузер не блокировал, сервер должен еще возвращать header Access-Control-Allow-Origin, где указан url с которого будет ajax
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы