2

我正在尝试编写一个页面,该页面通过 AJAX 从新闻站点获取 RSS 提要,然后将其发送到我可以使用它的 PHP。新闻提要作为对象数组返回。我已尝试按原样发​​布它,也尝试将其发布为 json 字符串。post方法似乎成功了,但是PHP给出了未定义的索引通知。这是我第一次使用 AJAX 和 PHP,我似乎无法从 PHP 端获取数据。

错误:

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;         
?>
4

1 回答 1

2

将您的代码包装在 anif中以避免该警告:

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 调用。

于 2013-07-21T14:54:09.777 回答