0

好的,这似乎是一个愚蠢的问题,但请记住 JSON 对我来说是全新的(我以前听过这个表达。但对此一无所知)。

当新评论添加到 disqus 线程时,我有这个回调函数可以通过电子邮件通知网站上的作者。

<script type="text/javascript">
    function disqus_config() {
        this.callbacks.onNewComment = [function(comment) {

            var authname = document.getElementById('authname').value;
            var authmail = document.getElementById('authmail').value;
            var link = document.getElementById('link').value;
            var disqusAPIKey = 'MY_API_KEY';
            var disqusCall = 'https://disqus.com/api/3.0/posts/details.json?post=' + comment.id + '&api_key=' + disqusAPIKey;

            $.ajax({
                type: 'POST',
                url: 'URL_OF_MAIL.PHP', 
                data: {'authname': authname, 'authmail': authmail, 'link': link, 'disqusCall': disqusCall},
                cache: false, 
            });
        }];
    }
</script>

一切都像魅力一样。除了...超出我理解范围的是(我已经四处搜索了。但是看到我对 JSON 一无所知,我什至不知道要寻找什么)如何提取信息来自“disqusCall”变量?现在,我只得到一个链接(其中包含我感兴趣的两件事,名称和消息)。我想将这些包含在邮件中。

我确信这很简单,例如“解码” JSON 信息,但我不知道如何。我发现的所有关于这个主题的帖子都让我更加困惑哈哈

4

2 回答 2

0

您需要提供成功回调,以便使用返回的 json 数据。

$.ajax({
     type: 'POST',
     url: 'URL_OF_MAIL.PHP',
     data: {
         'authname': authname,
         'authmail': authmail,
         'link': link,
         'disqusCall': disqusCall
     },
     cache: false,
     success: function (data) {
         if(data.length>0)
         {
             //read the json data
         }
     }

 });
于 2013-08-07T12:41:52.137 回答
0

所以我能够在一位对 JSON 有更好了解的朋友的帮助下完成这项工作。

这就是我最终得到的

<script type="text/javascript">
    function disqus_config() {
        this.callbacks.onNewComment = [function(comment) {

            var authname = document.getElementById('authname').value;
            var authmail = document.getElementById('authmail').value;
            var link = document.getElementById('link').value;
            var disqusAPIKey = 'MY_API_KEY';

            $.ajax({
                type: 'GET',
                url: 'https://disqus.com/api/3.0/posts/details.json',
                data: {
                    'post': comment.id,
                    'api_key': disqusAPIKey
                },

                success: function (data) {
                    var post_author_name = data.response.author.name;
                    var comment = data.response.raw_message;

                    $.ajax({
                        type: 'POST',
                        url: 'URL_TO_MAIL.PHP',
                        data: {
                            'authname': authname,
                            'authmail': authmail,
                            'link': link,
                            'post_author_name': post_author_name,
                            'comment': comment
                        },
                    });
                },
                cache: false,
            });             
        }];
    }
</script>

你可以在这里查看我写的一篇文章。它描述了我使用 JSON 的目的。

于 2013-08-10T14:58:14.613 回答