主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用。如需更多帮助,请查看http://xhr.spec.whatwg.org/
并指向以下代码部分......
尝试{ xhr.open('GET',noCacheUrl,false); xhr.send(NULL); } catch(e){ isCrossOriginRestricted = true; }
你们能告诉我如何防止它发生......
在该文件中提供我的代码
/ ** *加载脚本文件,支持异步和同步方法 * @私人的 * / loadScriptFile:function(url,onLoad,onError,scope,synchronous){ if(isFileLoaded [url]){ 返回装载机; }
var config = Loader.getConfig(),
noCacheUrl = url + (config.disableCaching ? ('?' + config.disableCachingParam + '=' + Ext.Date.now()) : ''),
isCrossOriginRestricted = false,
xhr, status, onScriptError,
debugSourceURL = "";
scope = scope || Loader;
Loader.isLoading = true;
if (!synchronous) {
onScriptError = function() {
};
scriptElements[url] = Loader.injectScriptElement(noCacheUrl, onLoad, onScriptError, scope);
} else {
if (typeof XMLHttpRequest != 'undefined') {
xhr = new XMLHttpRequest();
} else {
xhr = new ActiveXObject('Microsoft.XMLHTTP');
}
try {
xhr.open('GET', noCacheUrl, false);
xhr.send(null);
} catch (e) {
isCrossOriginRestricted = true;
}
status = (xhr.status === 1223) ? 204 :
(xhr.status === 0 && (self.location || {}).protocol == 'file:') ? 200 : xhr.status;
isCrossOriginRestricted = isCrossOriginRestricted || (status === 0);
if (isCrossOriginRestricted
) {
}
else if ((status >= 200 && status < 300) || (status === 304)
) {
// Debugger friendly, file names are still shown even though they're eval'ed code
// Breakpoints work on both Firebug and Chrome's Web Inspector
if (!Ext.isIE) {
debugSourceURL = "\n//@ sourceURL=" + url;
}
Ext.globalEval(xhr.responseText + debugSourceURL);
onLoad.call(scope);
}
else {
}
// Prevent potential IE memory leak
xhr = null;
}
},
答案 0 :(得分:0)
此警告仅在ExtJs的开发环境中的Chrome中显示。使用sencha cmd
构建应用程序后,警告不再显示。正如@Evan所指出的那样警告看起来很温和,你不应该担心它。
存在警告的事实应该不是问题,因为它永远不会在已部署的应用程序中显示。如果您还没有使用sencha cmd,那么将它集成到您的开发周期中绝对值得。
我知道这不是问题的直接答案。我自己,我想知道是否有可能完全摆脱这个警告。