Firefox本地ajax调用

时间:2012-11-12 15:56:53

标签: jquery firefox

我已经实现了here找到的解决方案,但它在Firefox中无效。

IE加载和读取XML文档 Strike,如果数据类型为“string”,则数据变量保存XML,但将其加载到xml变量中将返回下面的相同函数。 XML文件是存储在与HTML文件相同的文件夹中的平面文件。该文件是从"file:///D:/..."运行的,而不是从Web服务器运行的。

Firefox 版本 16.0.2 ,我尝试过 jquery 1.7.1和1.8.2 。我进行了dataType次比较,数据不是XML,只是说Object

我发出$(data).contents的警告并获取:

function (c, d) {
    var e = p.map(this, b, c);
    return bc.test(a) || (d = c), d && typeof d == "string" && (e = p.filter(d, e)), e = this.length > 1 && !bg[a] ? p.unique(e) : e, this.length > 1 && bd.test(a) && (e = e.reverse()), this.pushStack(e, a, k.call(arguments).join(","));
}

我尝试将security.fileuri.strict_origin_policy设置为 false ,但这没有效果。

以下是代码:

$.ajax({
        url: "COBIE.xml",
        dataType: ($.browser.msie) ? "text" : "xml",
        success: function (data) {
            if (typeof data == "string") {
                xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.loadXML(data);

                // Returned data available in object "xml"
                setMessage("XML date has been loaded");
            } else if (typeof data == "xml") {
                xml = data;
                alert($(xml).contents);
                // Returned data available in object "xml"
                setMessage("XML date has been loaded");
            } else {
                alert($(data).contents);
                setMessage("I have no idea what data you're trying to load");
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            setMessage(errorThrown);
        }
    });

2 个答案:

答案 0 :(得分:1)

如果您安装了Firebug,则可以使用F12查看页面的HTML,以及访问控制台。

然后,你可以使用console.debug而不是使用alert查看$(data).contents

console.debug($(data).contents);

我不确定我知道你的问题的答案,但这应该可以让你更好地了解正在发生的事情。

答案 1 :(得分:0)

代码工作正常。我的XML里面有一些有趣的东西,所以我无法正确地解析它,但它没有给出错误。它现在正在运作。