Кроссдоменный 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, время: 19:03. |