基本JQuery - 使用绑定数据发送Ajax请求

时间:2017-01-16 22:25:39

标签: jquery

所以我有这个:

<span><a class="deleteComment" data-bind="'id':1 , 'pointer': 2" href="/delete-comment/@response.getId">delete</a></span>

如果我也有这个javascript:

$.ajax({
    url: "someurl", 
    type: "post", 
    contentType: "application/json",        
    data: JSON.parse($(this).data("bind")),
    success: function(response){
        ...
    },
    error: function(){ }
});

我该怎么做才能让ajax中的“数据”只是一个JSON对象?

现在当我检查我发送的内容时,它不是JSON - 这非常烦人!

2 个答案:

答案 0 :(得分:3)

您的data-bind属性不是有效的JSON。在JSON中,对象必须用花括号括起来,字符串和属性名称必须用双引号引用,而不是单引号。

<span><a class="deleteComment" data-bind='{"id":1 , "pointer": 2}' href="/delete-comment/@response.getId">delete</a></span>

另外,你不应该致电JSON.parse()。当jQuery的.data()方法注意到属性的值是有效的JSON时,它会自动解析它。

由于您希望data:参数是JSON字符串,因此需要调用JSON.stringify()将对象转换回JSON($.ajax将对象转换为URL编码的字符串)

答案 1 :(得分:1)

如果你不使用括号,它将只是字符串

<span><a class="deleteComment" data-bind='{"id":1 , "pointer": 2}' href="/delete-comment/@response.getId">delete</a></span>