W3schools上的AJAX示例问题

时间:2011-03-22 05:24:49

标签: javascript ajax google-chrome internet-explorer-8

Link to example.

我用网址URL(http:// ...)替换了网址'ajax_info.txt',该网址以某些文字回复。生成的代码适用于IE 8。

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

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

  3. 感谢您的时间。

    P.S:我是网络开发的新手。

4 个答案:

答案 0 :(得分:2)

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

更多信息:

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

这就是为什么您的请求在Chrome中不起作用,假设您将一些随机网站的URL替换为文本文件。我不确定为什么它会对IE 8有效。我怀疑它会。

答案 1 :(得分:0)

如果您是新手并希望避免大多数交叉javascripting问题,请转到jQquery

哪个轻量级,并且在没有涉及浏览器时问题较少

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

答案 2 :(得分:0)

使用JQuery将使您更容易管理代码,所以去吧。如果您真的不想使用库,请查看此www.w3.org/TR/XMLHttpRequeste

然后是您提供的链接中的代码。我能够在没有任何铬错误的情况下执行它。您的Chrome浏览器中的ajax请求是否没有遇到任何错误。尝试使用chrome developer tools,在这里您将看到服务器发送的响应状态。你也可以看看你的js代码是否有错误。

答案 3 :(得分:-1)

(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);