Кроссдоменный ajax-запрос
Здравствуйте. Возникла проблема при составлении ajax запроса на другой сервер. Задача я упростил: отправить текстовую строку на другой сервер, там скрипт запрос получает, и отсылает какой-то ответ клиенту. Вот собственно код:
function test(){
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('Access-Control-Allow-Origin', 'http://domen2.mu/');
}
});
var text = "b";
$.ajax({
url: "http://domen2.mu/test/check2.php",
type: "post",
processData: false,
data: text,
xhrFields: {
withCredentials:true
},
success: function(data){
alert( "Прибыли данные: " + data );
}
});
}
На сервере чисто учебный тестовый скрипт в три строки, который прост отправляет строку. В результате хром выдает такую ошибку ошибку: Код:
OPTIONS http://domen2.mu/test/check2.php Origin http://domen1.mu is not allowed by Access-Control-Allow-Origin. jquery-1.10.0.min.js:6 |
Цитата:
|
Ха ха. А в чем по-твоему тогда смысл заголовка Access-Control-Allow-Origin если злоумышленник (как ты думаешь) может выставить его значение по своему желанию?
Разрешение должен давать сервер, а не скрипт. Сервер как бы должен сказать: я разрешаю xhr запросы с домена такого-то. А в твоем случае получается скрипт говорит: я разрешаю себе запросить со своего домена данные с чужого сервера, аха ха гы гы)) |
Чувствую кому-то стоит подучить матчасть)
Спасибо, все получилось) |
Есть неплохое решение, но с использованием php:
1. Создаём в своём домене файл PHP, php вполне нормально может прочитать файл с другого домена и даже его обработать при необходимости. 2. Создаём AJAX запрос к своему php-файлу и работаем с данными. Решение конечно не на чистом JS, но это решение. |
| Часовой пояс GMT +3, время: 17:46. |