繁体   English   中英

W3schools的AJAX示例问题

[英]Problem with an AJAX Example on W3schools

链接到示例。

我用网站URL(http:// ...)替换了URL'ajax_info.txt',该URL带有一些文本。 生成的代码可在IE 8中使用。

  1. 为什么该代码不适用于Chrome(无responseText)?

  2. 解决方案是什么(不使用任何库)?

感谢您的时间。

PS:我对Web开发非常陌生。

浏览器有一个安全限制,称为“相同来源策略”。 它可以防止随机网站使用通过Cookie或localStorage存储在浏览器中的身份信息代表您发出请求。 例如,如果w3schools.com可以向facebook.com提出AJAX请求,那么如果您在Facebook上拥有该信息,则可以找到您的住所或您的朋友是谁。 浏览器通过仅允许AJAX请求向文档所源自的域,端口和协议(例如,http或https)发出请求来防止此类请求。

更多信息:

http://en.wikipedia.org/wiki/Same_origin_policy

因此,假设您在文本文件中放置了一些随机网站的网址,因此您的请求无法在Chrome中运行。 我不确定为什么它会适用于IE8。我怀疑会这样。

如果您是新手,并且想避免大多数跨JavaScript问题,请使用jQquery

没有浏览器的情况下轻巧且问题少

对于您当前的问题,您可以使用jQuery。 Ajax()方法将解决您的问题

使用JQuery将使您的代码更易于管理,因此继续吧。 如果您真的不想使用库,请访问此www.w3.org/TR/XMLHttpRequeste

然后在您提供的链接中查看代码。 我能够执行它,而chrome中没有任何错误。 在Chrome浏览器中执行ajax请求没有遇到任何错误。 尝试使用chrome开发人员工具 ,在这里您将看到服务器发送的响应状态。 您还可以查看js代码是否有错误。

(function(c, I, B) {
        c.fn.responsiveSlides = function(l) {
                var a = c.extend({
                    auto: !0,
                    speed: 500,
                    timeout: 4E3,
                    pager: !1,
                    nav: !1,
                    random: !1,
                    pause: !1,
                    pauseControls: !0,
                    prevText: "Previous",
                    nextText: "Next",
                    maxwidth: "",
                    navContainer: "",
                    manualControls: "",
                    namespace: "rslides",
                    before: c.noop,
                    after: c.noop
                }, l);
                return this.each(function() {
                    B++;
                    var f = c(this),
                        s, r, t, m, p, q, n = 0,
                        e = f.children(),
                        C = e.size(),
                        h = parseFloat(a.speed),
                        D = parseFloat(a.timeout),
                        u = parseFloat(a.maxwidth),
                        g = a.namespace,
                        d = g + B,
                        E = g + "_nav " + d + "_nav",
                        v = g + "_here",
                        j = d + "_on",
                        w = d + "_s",
                        k = c(""),
                        x = {
                            "float": "left",
                            position: "relative",
                            opacity: 1,
                            zIndex: 2,
                        },
                        y = {
                            "float": "none",
                            position: "absolute",
                            opacity: 0,
                            zIndex: 1
                        },
                        F = function() {
                            var b = (document.body || document.documentElement).style,
                                a = "transition";
                            if ("string" === typeof b[a]) return !0;
                            s = ["Moz", "Webkit", "Khtml", "O", "ms"];
                            var a = a.charAt(0).toUpperCase() + a.substr(1),
                                c;
                            for (c = 0; c "+a+"
                                "});k.append(A);l.navContainer?c(a.navContainer).append(k):f.after(k)}a.manualControls&&(k=c(a.manualControls),k.addClass(g+"
                                _tabs "+d+"
                                _tabs "));(a.pager||a.manualControls)&&k.find("
                                li ").each(function(a){c(this).addClass(w+(a+1))});if(a.pager||a.manualControls)q= k.find("
                                a "),r=function(a){q.closest("
                                li ").removeClass(v).eq(a).addClass(v)};a.auto&&(t=function(){p=setInterval(function(){e.stop(!0,!0);var b=n+1" + a.prevText + "" + a.nextText + ""; l.navContainer ? c(a.navContainer).append(g) : f.after(g);
                                var d = c("." + d + "_nav"), G = d.filter(".prev"); d.bind("click", function(b) {
                                        b.preventDefault();
                                        b = c("." + j);
                                        if (!b.queue("fx").length) {
                                            var d = e.index(b);
                                            b = d - 1;
                                            d = d + 1u && f.css("width", u)
                                        };
                                        H();
                                        c(I).bind("resize", function() {
                                            H()
                                        })
                                    }
                                })
                        }
                })(jQuery, this, 0);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM