我有一个返回 jsp 页面的请求。但事实是,jsp 包含 jsp:include (它在其中调用另一个 jsp 文件),即给出错误 80020101。
有任何想法吗?
谢谢
我有一个返回 jsp 页面的请求。但事实是,jsp 包含 jsp:include (它在其中调用另一个 jsp 文件),即给出错误 80020101。
有任何想法吗?
谢谢
如果您从 jQuery 进行 AJAX 调用并且在数组末尾传递了一个额外的逗号,您也可能会收到此错误,如下所示:
$.post('http://example.com/example1/',{
field1:sField1,
field2:sField2,
field3:sField3,
field4:sField4,
field5:sField5,
},function(sData){
if (console) { console.log(sData); }
});
看到 sField5 后面的逗号了吗?那是语法错误。除了 IE,没有其他浏览器会关心。IE 将抛出晦涩的 80020101 错误(这意味着“无法评估您的 Javascript - 您有语法错误”),如果您使用 jQuery,追赶它实际上会令人困惑,因为调试器只会指向 eval 行在 jQuery 中。多亏了微软,IE 调试器对你来说毫无用处。下次遇到 80020101 错误时,我的建议是:
<!--
并//-->
标记您的 Javascript。在 1.7.2 之前,这一直是 jQuery 的一个已知问题,并且它仍然是 jQuery 团队提交的错误。删除使用 src-attribute 导入脚本的 javascript 声明。如果您确实需要它,请将您的 javascript-file 更改为 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,首选)运行它。它能够指出我能够修复的几个小错误(包括我的一个数据回调结构中的额外逗号),然后重新复制并粘贴回原来的位置以消除问题。
我有同样的错误,但在我的情况下,有一个保留字'class'
。这是一段代码,可以清楚地说明这一点:
function foo(ajaxResponse){
$(elem).attr('class', ajaxResponse.class);
}
我将其重写为:
$(elem).attr('class', ajaxResponse['class']);
希望这会有所帮助。
就我而言,我发现我的 JS 代码中有一条 HTML 注释:
<script type="text/javascript">
<!-- Unexpected Comment -->
//code...
</script>
我替换<!-- -->
了/* */
它并且它起作用了。希望它会帮助某人。
我遇到了这个问题,IE 的错误消息不是很有帮助。因此,我在 Mozilla Firefox 中访问了我的网站,而 Firefox 能够查明存在问题的确切代码行。不是高科技修复,但如果您只使用 IE 来调试此问题,请尝试在 FF 中加载您的站点(安装 Firebug 扩展)并检查控制台输出。
我也遇到了这个问题,但是仔细查看我的脚本文件后,我发现我犯了一个小错误,在其他浏览器上运行顺利,但 IE 选择它并显示错误:
我之前的代码是:
var autocomplete = new google.maps.places.Autocomplete(searchTextField ,options);
经过分析,我得到了searchTextField
id 并且在使用它之前我必须得到它的值
所以我把它改成:
var input = document.getElementById('searchTextField');
var autocomplete = new google.maps.places.Autocomplete(input,options);
它工作正常。
IE 检测到它真的很酷,但微软可能会增强浏览器以显示特定原因的特定错误,因为如果相同的代码在其他浏览器中工作,这是非常令人沮丧的
在我的情况下,问题是错误函数末尾的 Ajax POST 中额外的无用昏迷:
$.ajax({
type: 'POST',
dataType: 'text',
url: '../Client/GetName',
data: { ClientId: id},
success: function (respone) {
alert(respone);
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.statusText);
}, //<- look here, this guy complicated my simple programmer life
});
删除后一切正常。
我在使用 jQuery 1.10.2 时遇到了这个错误,并且正在加载一个不存在的文件。
所以要确保你尝试加载的文件是正确的,否则IE8会抛出80020101错误。
使用 jquery 时因其他问题而出现此错误。
更改 $(document).ready(function(){}) ; TO $(window).load(function(){});
您是否有机会包含 js 文件?
因为
错误 80020101 表示 IE 无法编译您的脚本。
想分享我的经验。就我而言,它与javascript无关。这是因为同事的 HTML 中的这一行使用了 angular:
<img data-ng-model="previewImage" src="" data-ng-src="{{imageURL}}" alt="" ></img>
我记得有一个空的 src 通常是一件坏事。我填充了 src 字段,错误消失了。
我的问题是由以下原因引起的:
var a = b = c = true;
转向
var a = true;
var b = true;
var c = true;
现在它工作正常!
再见马
我错过了将“var”放在变量声明的前面,认为它解决了这个问题。
<script>
uploadDocument = "Some message";
</script>
我将其固定为:
var uploadDocument = "Some message";
根本原因是我在表单中有一个具有相同 ID“uploadDocument”的元素,因此上述声明导致 html 格式错误