Ali*_*Ali 22 ajax internet-explorer jsp jspinclude
我有一个返回jsp页面的请求.但事实是,jsp包含jsp:include in(它在其中调用另一个jsp文件),即给出错误80020101.
有任何想法吗?
谢谢
Vol*_*ike 34
如果你正在从jQuery进行AJAX调用并且你在数组的末尾传递一个额外的逗号,你也可以得到这个错误,如下所示:
$.post('http://example.com/example1/',{
field1:sField1,
field2:sField2,
field3:sField3,
field4:sField4,
field5:sField5,
},function(sData){
if (console) { console.log(sData); }
});
Run Code Online (Sandbox Code Playgroud)
在sField5之后看到逗号?那是语法错误.没有其他浏览器会关心IE.IE将抛出模糊的80020101错误(这意味着"无法评估你的Javascript - 你有一个语法错误")如果你使用jQuery,它将实际上莫名其妙地追逐它,因为调试器只会指向eval行在jQuery中.感谢Microsoft,IE调试器对你来说是没用的.下次出现80020101错误时,我的建议如下:
<!--
并//-->
标记您的Javascript.这是jQuery直到1.7.2的一个已知问题,它仍然是jQuery团队提交的错误.删除使用src-attribute导入脚本的javascript声明.如果你真的需要它,你可以将你的javascript文件更改为inline-javascript.
资料来源: http ://bytes.com/topic/javascript/answers/750333-ie-syntax-error-80020101-undefined-array
最简单的方法是在AJAX请求中添加一个参数,例如ajax = 1,并在请求中存在ajax -parameter 时隐藏javascript声明.
我不认为这与使用jsp:include包含文件有任何关系,因为浏览器不知道除了你抛出它的HTML之外的其他内容.
我现在遇到过两次jQuery(即使是最新版本)这个问题.唯一的解决方案是将所有 javascript 复制并粘贴到一个大文件中,然后通过JSLint(jsfiddle.net,首选)运行它.它能够指出我能够修复的几个小错误(包括我的一个数据回调结构中的额外逗号),然后重新复制并粘贴回原来的位置以消除问题.
http://jsfiddle.net/devlshone/QKxup/3/
小智 5
我有同样的错误,但在我的情况下,有一个保留字'class'
.以下是一段清晰明了的代码片段:
function foo(ajaxResponse){
$(elem).attr('class', ajaxResponse.class);
}
Run Code Online (Sandbox Code Playgroud)
我把它重写为:
$(elem).attr('class', ajaxResponse['class']);
Run Code Online (Sandbox Code Playgroud)
希望这有用.
归档时间: |
|
查看次数: |
46361 次 |
最近记录: |