我正在使用prototype.js
来发出Ajax请求。一切正常,直到我将asynchronous
更改为false
(因为我想要进行同步请求)。以下是我的代码中的几行。
var commOptions = {
contentType: 'text/xml',
method: 'post',
asynchronous: true,
evalJS: false,
evalJSON: false
};
sProxy_Url = sUrl;
new Ajax.Request(sProxy_Url, commOptions);
如果我将asynchronous
更改为false
,则Ajax不起作用。我错过了什么吗?
答案 0 :(得分:1)
老实说,我没有看到什么不起作用,我甚至在javascript中得到了回应以确保:
var commOptions = {
contentType: 'text/xml',
method: 'post',
asynchronous: false,
evalJS: false,
evalJSON: false
};
var a = new Ajax.Request("/", commOptions);
console.log( a.transport.responseText.length ); //16898
答案 1 :(得分:0)
总是建议使ajax请求异步,因为使它们同步将阻止主JavaScript线程,这提供了糟糕的用户体验(参见this)。
但是,如果您真的想使用同步选项,则需要更清楚地了解运行代码时发生的情况 - 浏览器阻止了吗?或者函数是否返回但没有数据?