语法错误:意外的符号 <
语法错误:意外的符号 <
我尝试了很多方法,但总是出现这个错误。
我试着只使用一个选项来看是否能通过,改变了jquery的调用方式,但没用。
我在网上的各个地方查找了关于这个错误的信息,但无法解决或理解为什么会发生这种情况。
在我的电脑上使用EasyPHP工作得很完美,但放到网上就不起作用了。
语法错误:意外的令牌<
这是我的代码:
$(function(){ $('#salvar').click(function(){ var key = 'salvar'; var title = $('#title').val(); var opcao1 = $('#opcao1').val(); var opcao2 = $('#opcao2').val(); var opcao3 = $('#opcao3').val(); var opcao4 = $('#opcao4').val(); var opcao5 = $('#opcao5').val(); var opcao6 = $('#opcao6').val(); if(title.length > 0){ if(opcao2.length > 0){ $('#resposta').removeClass().html('Salvando a enquete...
'); $.ajax({ type : 'POST', url : 'funcoes/enquete_adm.php', dataType : 'json', data: {key:key,title:title,opcao1:opcao1,opcao2:opcao2,opcao3:opcao3,opcao4:opcao4,opcao5:opcao5,opcao6:opcao6}, success : function(data){ if(data.sql == 'ok'){ $('#resposta').addClass('success-box').html('Enquete Salva!').fadeIn(1000); $('#control').fadeOut(); }else if(data.sql == 'error'){ $('#resposta').addClass('info-box').html('Ops, aconteceu um erro. Por favor, tente novamente').fadeIn(1000); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert("XMLHttpRequest " + XMLHttpRequest[0]);alert(" errorThrown: " + errorThrown);alert( " textstatus : " + textStatus); } }); }else{ $('#resposta').addClass('warning-box').html('É necessário no mínimo duas opções'); }; }else{ $('#resposta').addClass('warning-box').html('Coloque a pergunta da enquete'); }; return false; }); }); // End
我怀疑你在请求的响应中得到的是text/html编码,所以我认为问题是:
dataType : 'json',
尝试将其改为
dataType : 'html',
从http://api.jquery.com/jQuery.get/:
dataType
类型:字符串
从服务器期望的数据类型。默认值:智能猜测(xml、json、script或html)。
在上述代码中,出现了语法错误:意外的令牌<。这个错误的原因是因为在代码中使用了不必要的分号(;)。
这个错误的解决方法是删除这些不必要的分号。在上述代码中,分号位于代码块的结尾处,而代码块的结尾应该是右括号(})。因此,只需要删除这些分号即可修复错误。
修复后的代码如下所示:
}else{ $('#resposta').addClass('warning-box').html('É necessário no mínimo duas opções'); } // 另一个例子 }else{ $('#resposta').addClass('warning-box').html('Coloque a pergunta da enquete'); }
通过删除不必要的分号,我们成功修复了语法错误。这样,代码就可以正常运行了。
这个问题的出现原因是在包含或提交一个不存在的文件。服务器会返回一个常规的HTML格式的"404 Not Found"错误,其中包含'<html></html>'
标签。这个标签中的第一个尖括号<既不是有效的JavaScript代码,也不是有效的JSON,因此会触发一个意外的标记。
解决方法是尝试将'funcoes/enquete_adm.php'更改为绝对URL,以确保文件存在。
另外,根本原因可能并不总是来自于404错误。有时候你可能向API发出请求,收到的是HTML格式的错误。我遇到过几种情况,API端点应该返回{error: "you must be authenticated to make this request"}
,并带有401头部。但是实际上我收到的是<html>You must be authenticated to make this request</html>
,并带有200头部。
由于头部是200,你无法事先判断请求是否失败,只能尝试使用JSON.parse
解析响应以检查其是否有效。
奇怪的是,我有几个使用JS URL的相同方式的命令,它们都可以正常工作,只有这个命令出现问题。而且在我的电脑上可以正常工作,但在服务器上却无法工作。
感谢您的帮助。对我来说,这个方法是有效的。我拼写错误了我的js文件名。