32

助けてください。私のajax呼び出しで無効な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、jQuery によってパーセンタイル エンコード文字列としてシリアル化されるプレーンな JS オブジェクトを送信しています。このシリアル化は、有効な 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 プリミティブの考えられる理由

于 2013-07-26T06:05:50.560 に答える
1

次の行が原因で問題に直面しています。

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

最初に、返される結果が JSON タイプになることをアプリケーションに伝え、2 行目で dataType が HTML になることを伝えます。それでは、どうすればjsonデータを返すことができますか。

json データを返して使用するには、dataType:'json'. これを使って:

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

注:成功関数のスペルが間違っているので、それも修正してください。

于 2013-07-26T06:01:42.633 に答える