首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ajax用于“加载滚动”脚本提供403

Ajax用于“加载滚动”脚本提供403
EN

Stack Overflow用户
提问于 2016-01-11 15:02:01
回答 1查看 331关注 0票数 0

我要在hubspot上建个博客。我们希望博客文章加载到滚动。我找到了一个脚本,说明它是这样做的,并且是专门为哈勃星设计的。

尽管如此,当我通过滚动激活脚本时,我在控制台中得到了一个403。我认为这不是hubspot问题,而是Ajax问题。

我使用的脚本: www.uvm . .edu/~enewbury/swoosh/

我们的hubspot cdn:assets/1452520555218/custom/page/JS/Swoosh.min.js上的脚本

博客:http://insights.signetaccel.com/blog

唯一突出的是ajax请求是跨域的,但是在hubspot文件和公司域之间这是一个正常的事情,所以如果这个脚本是为了在hubspot中使用而构建的,我会认为所有者会考虑到这一点。

我一直在寻找答案,却空手而归。应该注意的是,php代理不能工作,因为服务器端编程不是hubspot的一种选择。

我真的很感激你能给我一些答案或一些建议,告诉你该怎么做。

代码语言:javascript
运行
复制
$(document).ready(function(){
        $(".grid").swoosh();
    });



(function(a) {
a.fn.swoosh = function(f, k) {
    if (!f) {
        f = "Loading..."
    }
    if (k == null) {
        k = -1
    }
    var c = this;
    var e = false;
    var j = 2;
    var d = window.location.href.toString().split("/");
    var i = d[0] + "//" + d[2] + "/" + d[3] + "/";
    var h = i + "page/";
    var g = "";
    var b = false;
    if (f != "Loading...") {
        c.parent().append('<div class="loading"><img src="' + f + '"></div>')
    } else {
        c.parent().append('<div class="loading">' + f + "</div>")
    }
    a(".loading").hide();
    a(document).scroll(function() {
        if (b || e || j == 0) {
            return false
        }
        if (a(window).scrollTop() >= a(document).height() - a(window).height() - a(".footer-container-wrapper").height() - 150) {
            b = true;
            a(".loading").fadeIn(200);
            g = h + j;
            a.post(g, function(m) {
                var l = a(m).find(".grid-item");
                      if (l.length) {
                          console.log(f);
                            a(".loading").fadeOut(200, function() {
                             l.appendTo(".grid")
                        });
                        j++;
                         a(".next-posts-link").attr("href", h + j)
                     } else {
                         e = true;
                         a(".next-posts-link").after('<div class="next-posts-link unactive">Next</div>');
                         a(".next-posts-link:not(.unactive)").remove();
                        a(".loading").fadeOut(200)
                        }
                        b = false;
                        setTimeout(function() {
                        twttr.widgets.load();
                        IN.parse();
                        FB.XFBML.parse();
                        gapi.plusone.go()
                    }, 350)
                })
             }
        })
    }
})(jQuery);
(function() {
    return window.SIG_EXT = {};
})()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-11 15:39:26

因为脚本使用的是jQuery的.post而不是.get;不允许向HubSpot COS/博客页面发送http帖子。这出现在原始js示例的第45行中:http://www.uvm.edu/~enewbury/swoosh/swoosh.js

切换GET的HTTP方法,然后继续调试。该脚本是非官方的,虽然打算是通用的,但依赖于HubSpot的COS/blog生成的特定的身体结构和元素的分类。可能需要更多的调试才能使其工作。

细节:这个脚本的工作方式有点诡异。它不从API或其他有效资源中获取博客内容--而是在滚动、从检索的响应中解析博客帖子HTML并将它在异步获取中找到的帖子注入当前页面时,获取/ page /2、/page/3等的完整HTML。

使用一个帖子而不是一个GET来获取这个内容是产生一个403禁止的。

可能会有更多的问题,因为脚本在很大程度上取决于某些元素是否以特定的方式进行分类,但这解决了您当前的403问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34724592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档