我正在调试我的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相当古老......所以我开始了一个新话题。
答案 0 :(得分:0)
我非常确定原型没有dataType
属性,请尝试将其删除并再次检查。
以下是默认原型AJAX选项
this.options = {
method: 'post',
asynchronous: true,
contentType: 'application/x-www-form-urlencoded',
encoding: 'UTF-8',
parameters: '',
evalJSON: true,
evalJS: true
};