Ajax.Request(Prototype v1.6.0.3)无法在Chrome中运行(最新稳定的Mac版本)?

时间:2011-08-17 09:34:52

标签: ajax google-chrome prototypejs

我正在调试我的JavaScript代码到目前为止在大多数浏览器中运行良好...但Chrome目前仍在拒绝我的Ajax.Request。请查看以下代码:

    var base = document.location.pathname.substr(0, document.location.pathname.indexOf('/',1));
    new Ajax.Request(base + '/status.json', {
        method : 'get',
        dataType : 'json',
        contentType : 'application/json',
        onSuccess : function(res) {
            updateProgressBar(res.responseJSON);
        },
        onFailure : function(res) {
            console.error("ProgressBar AJAX failed!");
        },
        onCreate : function(res) {
            console.error("ProgressBar AJAX onCreate!");
        },
        onUninitialized : function(res) {
            console.error("ProgressBar AJAX onUninitialized!");
        },
        onLoading : function(res) {
            console.error("ProgressBar AJAX onLoading!");
        },
        onLoaded : function(res) {
            console.error("ProgressBar AJAX onLoaded!");
        },
        onInteractive : function(res) {
            console.error("ProgressBar AJAX onInteractive!");
        },
        on200 : function(res) {
            console.error("ProgressBar AJAX on200!");
        },
        onComplete : function(res) {
            console.error("ProgressBar AJAX onComplete!");
        }
    });

所有onSomethings都已添加用于调试...我通常只需要onSuccess。但目前Chrome从未调用过。它只会触发以下事件:

onCreate
onLoading

就是这样。没有onLoaded或其他任何东西。

这是这个版本的已知错误吗?我们使用ProtoType附带的RichFaces v3.3.3.Final。如果这根本不起作用,我将编写自己的AJAX请求...但我想确保我没有先犯下一个简单的错误。感谢。

PS:我看到Prototype's Ajax.Request not working in Chrome相当古老......所以我开始了一个新话题。

1 个答案:

答案 0 :(得分:0)

我非常确定原型没有dataType属性,请尝试将其删除并再次检查。

以下是默认原型AJAX选项

this.options = {
    method:       'post',
    asynchronous: true,
    contentType:  'application/x-www-form-urlencoded',
    encoding:     'UTF-8',
    parameters:   '',
    evalJSON:     true,
    evalJS:       true
};