32

请帮忙。在我的 ajax 调用中出现错误 Invalid JSON 原语,以下 ajax 调用有什么问题

    $.ajax({
                url: "/Precedent/ShowPartyContents", type: "POST",
                contentType: 'application/json; charset=utf-8',
                dataType: 'html',
                data:{'partyId':party,'PartySelCombo':valueFrom,'DocumentId':DocId},
                sucess:function(result){
                    alert("String"+ result);
                    //jq("#PartyTagContentArea-"+ pass cheyyenda id).html(data).fadeIn();
                },
                error : function( ts ){ 
                    alert("error :(" + ts.responseText);


                }

            });

谢谢

4

3 回答 3

69

您承诺一种内容类型,application/json但正在发送一个普通的 JS 对象,它被 jQuery 序列化为百分位编码字符串。这种序列化可能与有效的 JSON 相去甚远。

改变:

data: {'partyId':party,'PartySelCombo':valueFrom,'DocumentId':DocId},

到:

data: JSON.stringify({'partyId':party,'PartySelCombo':valueFrom,'DocumentId':DocId}),
于 2013-07-26T06:01:59.963 回答
4

尝试从数据中删除“'”,

data:{partyId:party,PartySelCombo:valueFrom,DocumentId:DocId}

使用单引号来分配您的值,例如

错误的:

$.ajax({
  type: 'POST',
  contentType: 'application/json',
  dataType: 'json',
  url: 'WebService.asmx/Hello',
  data: { FirstName: "Dave", LastName: "Ward" }
});

对:

$.ajax({
  type: 'POST',
  contentType: 'application/json',
  dataType: 'json',
  url: 'WebService.asmx/Hello',
  data: '{ FirstName: "Dave", LastName: "Ward" }'
});

请点击以下链接进行澄清

无效的 Json Premitive 可能的原因

于 2013-07-26T06:05:50.560 回答
1

由于以下几行,您正面临问题:

contentType: 'application/json; charset=utf-8',
dataType: 'html',

首先,您对应用程序说返回结果将是 JSON 类型,然后在第二行中您说 dataType 将是 HTML。那么如何返回json数据。

要返回和使用 json 数据,您必须指定dataType:'json'. 用这个:

contentType: 'application/json; charset=utf-8',
dataType: 'json',

注意:您拼错了成功功能,所以也正确。

于 2013-07-26T06:01:42.633 回答