我想写一个页面,它通过AJAX从新闻网站获取RSS提要,然后将其发送到PHP,我可以使用它。新闻订阅源作为对象数组返回。我试过发布它原样,也作为json字符串。 post方法似乎很成功,但PHP提供了一个未定义的索引通知。这是我第一次使用AJAX和PHP,而且我似乎在从PHP端获取数据时遇到了问题。
错误:
Notice: Undefined index: data in ...\index.php on line 33
目前的代码如下:
ajax方
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 side
<?php
$data = json_decode(stripslashes($_POST['data']));
echo $data;
?>
答案 0 :(得分:2)
将您的代码包裹在if
中以避免该警告:
if (isset($_POST['data'])) {
$data = json_decode(stripslashes($_POST['data']));
echo $data;
}
问题是当你从浏览器访问index.php时,没有POST请求,所以当然$_POST
为空并且未设置$_POST['data']
。
希望你明白这一点。
编辑:
嗯,我看不出任何严重的错误。实际上现在我建议您使用php.net/manual/en/book.curl.php直接从RSS获取数据,而不是嵌套2个ajax调用。