Я пытаюсь написать страницу, которая берет RSS-канал с новостного сайта через AJAX, а затем отправляет его на PHP, где я могу работать с ним. Канал новостей возвращается как массив объектов. Я пробовал разместить его как есть, а также как строку json. Метод post кажется успешным, но PHP дает неопределенное уведомление об индексе. Это мой первый опыт использования AJAX и PHP, и у меня, похоже, проблема с получением данных со стороны PHP.Получение строки json в php из jquery ajax post
Ошибка:
Notice: Undefined index: data in ...\index.php on line 33
Текущий код выглядит следующим образом:
АЯКС стороне
url = 'http://feeds.bbci.co.uk/news/rss.xml?edition=int';
$.ajax({
type: "GET",
url: document.location.protocol + '//ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=1000&callback=?&q=' + encodeURIComponent(url),
dataType: 'json',
error: function(){
alert('LOAD ERROR, INVALID URL');
},
success: function(xml){
values = xml.responseData.feed.entries;
var senddata = JSON.stringify(values);
console.log(senddata);
$.ajax({
type: "POST",
url: "index.php",
data: {data : senddata},
success: function(){
alert("postdone!");
},
error: function(){
alert("posterror!")
}
});
}
});
стороне PHP
<?php
$data = json_decode(stripslashes($_POST['data']));
echo $data;
?>
Никогда не замечал, что вложенный аякс. «Console.log (senddata);« возвращает что-нибудь? –
Два предложения: во-первых, переименуйте данные параметра в другое. Возможно, существует некоторая путаница, поскольку имя параметра совпадает с именем ключа .ajax. Во-вторых, дамп содержимого '$ _POST' (' var_dump ($ _ POST'); '), чтобы увидеть, что он содержит. Ваши данные там, возможно, в том месте, которого вы не ожидали? –