Uncaught ReferenceError: Sys is not defined on ASP.NET
Uncaught ReferenceError: Sys is not defined on ASP.NET
我想在 ASP.NET platform. For that I use ScriptManager. Simply I add this script with jQuery after when "document is ready 上使用 ajax。
$(document).ready(function () {
// sync
{{scopeName}}_init();
// async
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (sender, args) {
{{scopeName}}_init();
});
});
然后就发生了这样一个神秘的javascript错误。
Uncaught ReferenceError: Sys is not defined
问如果 javascript 在第一次请求后停止工作,我有什么问题吗?
解决方法是不跳过“Sys.WebForms.PageRequestManager" using undefined条件
if (typeof(Sys) !== 'undefined') {
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (sender, args) {
{{scopeName}}_init();
});
}
对于回发,我们会在文档准备就绪时初始化函数 - 同步部分。
对于 ScriptManager 块中的 ajax 请求,我们需要在 "add_pageLoaded" 上注册初始化函数。之后,每次脚本在第一次请求时都能正常工作 - 异步部分。
最重要的被忽略的步骤是注册“add_endRequest”,这解决了问题。
整个示例代码:
$(document).ready(function () {
// sync
console.log("sync");
{{scopeName}}_init();
// async
pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
pageRequestManager.add_endRequest({{scopeName}}_onAsyncEndRequest);
pageRequestManager.add_pageLoaded({{scopeName}}_onAsyncPageLoaded);
});
function {{scopeName}}_onAsyncEndRequest(sender, args) {
console.log("async end");
console.log(args);
}
function {{scopeName}}_onAsyncPageLoaded(sender, args) {
console.log("async start");
{{scopeName}}_init();
}
我最近 运行 自己遇到了这个问题,所以我想我会输入这个来帮助可能正在经历 same/similar 问题的人。
我发现当 VS 部署应用程序并在我的生产服务器上启动 运行 应用程序时,我的浏览器正在寻找 ScriptResource.axd
(对于 ASP.NET AJAX) 和 WebResource.axd
,并且在根目录中找不到任何文件。
关于这些文件的更多信息:What is WebResource.axd?
我想在 ASP.NET platform. For that I use ScriptManager. Simply I add this script with jQuery after when "document is ready 上使用 ajax。
$(document).ready(function () {
// sync
{{scopeName}}_init();
// async
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (sender, args) {
{{scopeName}}_init();
});
});
然后就发生了这样一个神秘的javascript错误。
Uncaught ReferenceError: Sys is not defined
问如果 javascript 在第一次请求后停止工作,我有什么问题吗?
解决方法是不跳过“Sys.WebForms.PageRequestManager" using undefined条件
if (typeof(Sys) !== 'undefined') {
Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function (sender, args) {
{{scopeName}}_init();
});
}
对于回发,我们会在文档准备就绪时初始化函数 - 同步部分。
对于 ScriptManager 块中的 ajax 请求,我们需要在 "add_pageLoaded" 上注册初始化函数。之后,每次脚本在第一次请求时都能正常工作 - 异步部分。
最重要的被忽略的步骤是注册“add_endRequest”,这解决了问题。
整个示例代码:
$(document).ready(function () {
// sync
console.log("sync");
{{scopeName}}_init();
// async
pageRequestManager = Sys.WebForms.PageRequestManager.getInstance();
pageRequestManager.add_endRequest({{scopeName}}_onAsyncEndRequest);
pageRequestManager.add_pageLoaded({{scopeName}}_onAsyncPageLoaded);
});
function {{scopeName}}_onAsyncEndRequest(sender, args) {
console.log("async end");
console.log(args);
}
function {{scopeName}}_onAsyncPageLoaded(sender, args) {
console.log("async start");
{{scopeName}}_init();
}
我最近 运行 自己遇到了这个问题,所以我想我会输入这个来帮助可能正在经历 same/similar 问题的人。
我发现当 VS 部署应用程序并在我的生产服务器上启动 运行 应用程序时,我的浏览器正在寻找 ScriptResource.axd
(对于 ASP.NET AJAX) 和 WebResource.axd
,并且在根目录中找不到任何文件。
关于这些文件的更多信息:What is WebResource.axd?