【问题标题】:What is wrong with this jQuery syntax?这个 jQuery 语法有什么问题?
【发布时间】:2012-08-06 01:47:23
【问题描述】:

此代码不断抛出“意外令牌”错误,但我无法弄清楚它有什么问题。任何线索都会很棒。

function addComment() {
    $.ajax({
        url:'/add/comment/id',
        type:'POST',
        data.JSON.stringify({'Text':$('#comment_text').val()}),
        contentType:'application/json; charset=utf8',
        processData:false,
        success:function(data){
            $('#comments').prepend(data.comment.Text);
        }
    });
}

【问题讨论】:

  • 数据:JSON.stringify({'Text':$('#comment_text').val()}),
  • 天哪,真尴尬。谢谢。

标签: jquery ajax syntax


【解决方案1】:

问题出在这一行:

data.JSON.stringify({'Text':$('#comment_text').val()}), 

意外的标记是data 之后的句点 (.)。

data 后面需要一个冒号 (:) 而不是句点 (.),如下所示:

data: JSON.stringify({'Text':$('#comment_text').val()}), 

请注意,这里不需要JSON.stringify。正如@pst 指出的那样,无论如何,jQuery 都会为您做到这一点。

data: {
  'Text': $('#comment_text').val()
},

【讨论】:

    【解决方案2】:
    data: JSON.stringify({'Text':$('#comment_text').val()}),
    

    【讨论】:

      【解决方案3】:
      data.JSON.stringify({'Text':$('#comment_text').val()})
      

      应该是:

      data: JSON.stringify({'Text':$('#comment_text').val()})
      

      【讨论】:

      • @MFB 数据可以是对象或字符串。 api.jquery.com/jQuery.ajax 最好让 jQuery 做 JSONing,因为不是所有的浏览器都有原生的 JSON.stringify 支持
      • @CameronMartin 对象将被转换为 key=value 对而不是 JSON
      • @Musa 哦,当然,我的错。在这种情况下,url 编码的查询字符串比 JSON 更有意义。
      • @CameronMartin JSON 对我来说很容易,因为我可以将它直接扔到我的数据库中,但我正在寻找一种简单的方法来转换字符串。
      • 您使用的是什么数据库?沙发数据库?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 2012-07-07
      • 2012-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多