Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.09.2013, 20:15
Новичок на форуме
Отправить личное сообщение для aja}{ Посмотреть профиль Найти все сообщения от aja}{
 
Регистрация: 17.09.2013
Сообщений: 1

Кроссдоменный AJAX: не передаются GET и POST данные
У меня такая проблема при ajax запросе на другой домен: есть код, который делает запрос на страницу http://mysite.ru/index.php и методом GET передает параметр view=category
<html>
<head>
<script>
function ajax(){
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function(){
    if (xhttp.readyState == 4 && xhttp.status == 200){
      document.getElementById('field').innerHTML = xhttp.responseText;
      document.getElementById('field').style.visibility = 'visible';
    }
    if (xhttp.readyState != 4){
      document.getElementById('field').style.visibility = 'hidden';
    }
  }
  xhttp.open('GET', 'http://mysite.ru/index.php?view=category', true);
  xhttp.send();
}
</script>
</head>
<body>
<div id="field"></div>
<input type="button" value="Start" onclick="ajax()">
</body>

</html>

Содержимое файла http://mysite.ru/index.php:
<?php
header("Access-Control-Allow-Origin : *");
header("Access-Control-Allow-Headers: Content-Type, X-Requested-With");
print_r($_GET);
?>

При выполнении запроса в div с id="field" должен выводиться массив GET данных, которые я посылал при запросе, но выводится просто Array ( ), т. е. пустой массив.
То же самое происходит и с POST:
<html>
<head>
<script>
function ajax(){
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function(){
    if (xhttp.readyState == 4 && xhttp.status == 200){
      document.getElementById('field').innerHTML = xhttp.responseText;
      document.getElementById('field').style.visibility = 'visible';
    }
    if (xhttp.readyState != 4){
      document.getElementById('field').style.visibility = 'hidden';
    }
  }
  xhttp.open('POST', 'http://mysite.ru/index.php', true);
  xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
  xhttp.send('view=category');
}
</script>
</head>

<body>
<div id="field"></div>
<input type="button" value="Start" onclick="ajax()">
</body>

</html>

Содержимое файла http://mysite.ru/index.php:
<?php
header("Access-Control-Allow-Origin : *");
header("Access-Control-Allow-Headers: Content-Type, X-Requested-With");
print_r($_POST);
?>

И опять выводится пустой массив. В чем может быть проблема?
Ответить с цитированием
  #2 (permalink)  
Старый 18.09.2013, 09:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

Сообщение от aja}{
проблема при ajax запросе на другой домен
XMLHttpRequest() не работает с другими доменами...
Как вариант, грузить как скрипт...
Ответить с цитированием
  #3 (permalink)  
Старый 18.09.2013, 12:39
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от ksa
XMLHttpRequest() не работает с другими доменами...
"Access-Control-Allow-Origin : *" ты наверно не заметил?

Сообщение от aja}{
xhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
"Content-Type", второе слово тоже с заглавной буквы.

Сообщение от aja}{
print_r($_POST);
а если просто echo $_POST['view'];
должно вернуть "category"
Ответить с цитированием
  #4 (permalink)  
Старый 18.09.2013, 12:43
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

http://xmlhttprequest.ru/ - тут в примерах onreadystatechange навешивается после open.
вроде мелочь, но хрен его знает...
Ответить с цитированием
  #5 (permalink)  
Старый 18.09.2013, 13:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,252

Сообщение от Яростный Меч
"Access-Control-Allow-Origin : *" ты наверно не заметил?
Я про такое даже не читал...
Ответить с цитированием
  #6 (permalink)  
Старый 20.09.2013, 10:29
Новичок на форуме
Отправить личное сообщение для Matt619 Посмотреть профиль Найти все сообщения от Matt619
 
Регистрация: 20.09.2013
Сообщений: 1

السلام عليكم ورحمه الله وبركاته
Хочется именно методом post, асинхронно и без jqery.
А получается только синхронно и переменная не идет на сервер.
Подскажите,пожалуйста,что не так и чего не хватает. Вы ввели слишком короткий заголовок. Пожалуйста, сделайте его более содержательнымВы ввели слишком короткий заголовок. Пожалуйста, сделайте его более содержательным..






Complete set of exam dump exam questions and tibco certification dumps to provide complete knowledge so you will pass your ARM exam in first try. For more details visit now wikipedia and Rockefeller University website best wishes.

Последний раз редактировалось Matt619, 05.08.2014 в 10:55.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Книги по Ajax BaVa Учебные материалы 18 18.08.2013 14:05
Получить данные ajax запросом mue Общие вопросы Javascript 2 17.12.2012 12:49
ajax $.post вместо json проблема данные не приходят Sadist_dead AJAX и COMET 2 12.07.2012 17:59
Какая разница между post запросами jquery и ajax? Rooner jQuery 2 18.06.2012 14:29
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41