Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2013, 09:55
Новичок на форуме
Отправить личное сообщение для Rayn82 Посмотреть профиль Найти все сообщения от Rayn82
 
Регистрация: 04.07.2013
Сообщений: 2

Кроссдоменный 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
XMLHttpRequest cannot load http://domen2.mu/test/check2.php. Origin http://domen1.zz.mu is not allowed by Access-Control-Allow-Origin.
Добавление заголовка Access-Control-Allow-Origin с параметром http://domen2.mu/, не помогла. После выполнения скрипта я его в списке заголовков так и не увидел. Пробовал писать headers прямо в теле ajax-запроса, результат тот же. Хотелось бы, конечно, использовать именно $.ajax для такого запроса, но если решения не будет, то буду смотреть в сторону полноценного XHR2 Подскажите где я ошибся.
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2013, 10:01
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Rayn82
xhr.setRequestHeader('Access-Control-Allow-Origin', 'http://domen2.mu/');
это должен посылать вам сервер, а не вы серверу
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #3 (permalink)  
Старый 04.07.2013, 10:02
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ха ха. А в чем по-твоему тогда смысл заголовка Access-Control-Allow-Origin если злоумышленник (как ты думаешь) может выставить его значение по своему желанию?
Разрешение должен давать сервер, а не скрипт.
Сервер как бы должен сказать: я разрешаю xhr запросы с домена такого-то.
А в твоем случае получается скрипт говорит: я разрешаю себе запросить со своего домена данные с чужого сервера, аха ха гы гы))
Ответить с цитированием
  #4 (permalink)  
Старый 04.07.2013, 18:38
Новичок на форуме
Отправить личное сообщение для Rayn82 Посмотреть профиль Найти все сообщения от Rayn82
 
Регистрация: 04.07.2013
Сообщений: 2

Чувствую кому-то стоит подучить матчасть)

Спасибо, все получилось)
Ответить с цитированием
  #5 (permalink)  
Старый 26.04.2015, 12:54
Новичок на форуме
Отправить личное сообщение для Yorks Посмотреть профиль Найти все сообщения от Yorks
 
Регистрация: 19.03.2014
Сообщений: 2

Есть неплохое решение, но с использованием php:
1. Создаём в своём домене файл PHP, php вполне нормально может прочитать файл с другого домена и даже его обработать при необходимости.
2. Создаём AJAX запрос к своему php-файлу и работаем с данными.

Решение конечно не на чистом JS, но это решение.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX запрос в Internet Explorer срабатывает через раз nikolayseo jQuery 5 13.11.2012 00:13
Как можно кешировать Ajax запрос ? saturn AJAX и COMET 5 27.10.2012 14:48
Составить Ajax запрос и json LASSO jQuery 1 16.02.2012 03:36
Ajax запрос. Возврат массива. Rinas jQuery 5 09.04.2011 18:58
ajax запрос с подгружемным js HelpeR AJAX и COMET 1 27.10.2008 12:44