javascript - 语法错误 : unexpected token <

标签 javascript jquery ajax syntax token

试了很多都没办法,总是出现这个错误 我试过只用一个选项看是否通过,改了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...<br clear="all"><br><img src="images/switch-loading.gif" />');
            $.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

最佳答案

当您包含或发布到一个不存在的文件时,通常会发生这种情况。 服务器将返回包含在

中的常规 html 格式的“404 Not Found”
'<html></html>' 

标签。第一个 chevron < 不是有效的 js 也不是有效的 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>

带有 header 200。

鉴于 header 为 200,您无法事先判断请求已失败,并且您必须尝试使用​​ JSON.parse 响应来检查它是否有效。

关于javascript - 语法错误 : unexpected token <,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18561556/

相关文章:

javascript - 如何在 Selenium 中使用 JavaScript 检查输入是否被禁用

javascript - document.getElementById();第三次不起作用

jquery - 为什么我的 jquery ajax 发布到 django View 总是导致错误回调执行

javascript - 推迟异步服务调用,直到 promise 得到解决

javascript - 删除jquery中没有特定后代元素的所有元素

javascript - 提交表单时不显示错误类

jquery - Div 在另一个下滑动

javascript - select 没有从 jQuery 触发任何事件

Jquery fadeIn 导致滚动顶部,我该如何解决?

php - 有没有办法在没有插件的情况下在结帐完成前上传图片?