首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >语法错误:意外的标记<

语法错误:意外的标记<
EN

Stack Overflow用户
提问于 2013-09-02 02:34:01
回答 16查看 445.2K关注 0票数 83

我尝试了很多方法,但是没有办法,总是出现这个错误,我试图只使用一个选项来查看是否通过,更改了jquery的调用,但没有。

我在互联网上查找了关于这个错误的各种地方,但无法解决或理解为什么会发生这种错误。在我的pc上使用EasyPHP运行得很好,但是当我把它放到网上的时候就不能工作了。

语法错误:意外的标记<

下面是我的代码:

代码语言:javascript
复制
$(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
EN

回答 16

Stack Overflow用户

发布于 2013-09-02 02:55:49

这通常发生在你包含或发布到一个不存在的文件的时候。服务器将返回一个常规的html格式的"404未找到“,并包含在

代码语言:javascript
复制
'<html></html>' 

标签。第一个chevron <既不是有效的js也不是有效的json,因此它触发了一个意外的标记。

如果你想把'funcoes/enquete_adm.php‘改成一个绝对的url会怎么样呢?

编辑(几年后)

根本原因可能并不总是来自404错误。有时,您可以向API发出请求,并收到HTML格式的错误。我偶然发现了几种情况,在这些情况下API端点应该返回

代码语言:javascript
复制
{
   error: "you must be authenticated to make this request"
}

具有报头401。结果我得到了

代码语言:javascript
复制
<html>You must be authenticated to make this request</html>

标题为200。

如果标头是200,你不能预先判断请求已经失败了,你只能尝试和JSON.parse响应来检查它是否有效。

票数 121
EN

Stack Overflow用户

发布于 2013-09-02 02:45:05

您有不必要的; (分号):

示例如下:

代码语言:javascript
复制
 }else{
        $('#resposta').addClass('warning-box').html('É necessário no mínimo duas opções');
    };

}后面的尾随;不正确。

在这里另一个例子:

代码语言:javascript
复制
}else{
    $('#resposta').addClass('warning-box').html('Coloque a pergunta da enquete');
};
票数 14
EN

Stack Overflow用户

发布于 2015-02-25 22:20:00

我怀疑你得到的是text/html编码来响应你的请求,所以我认为问题是:

代码语言:javascript
复制
dataType : 'json',

尝试将其更改为

代码语言:javascript
复制
dataType : 'html',

来自http://api.jquery.com/jQuery.get/

dataType类型: String期望从服务器获取的数据类型。默认值:智能猜测(xml、json、script或html)。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18561556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档