2013-07-26 15 views
29

ご了承ください。私のAJAX呼び出しがエラー無効なJSONプリミティブ、いただきました!この次のAJAX呼び出しを間違って無効なJSONプリミティブエラー

$.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); 


       } 

      }); 

おかげ

+0

たラインで明確化するためのリンクの下に従ってください? –

+3

また、タイプミスもあります。 「成功」ではなく「成功」である。 –

+0

私はajaxエラー関数からこのエラーを受け取りました。また、そのスペルミスについて私に指摘してくれてありがとう。 –

答えて

59

あなたはapplication/jsonのコンテンツタイプを約束しているが、jQueryのでパーセンタイルでエンコードされた文字列としてシリアライズされますプレーンなJSオブジェクトを、送信しています。このシリアライゼーションは有効なJSONからは遠いかもしれません。

変更:

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

へ:

data: JSON.stringify({'partyId':party,'PartySelCombo':valueFrom,'DocumentId':DocId}), 
+1

Thrustmasterあなたは私の問題を解決しました....ありがとう –

+1

あなたは私の一日を..保存しました。 – teapeng

+0

JSONレスポンスでは、application/jsonのコンテンツタイプである必要がありますが、JavaScriptを使用して最初に送信するには、アプリケーション/ x-www-form-urlencoded; charset = UTF-8 'である必要がありました –

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', 

注: はこれを使って、あなたもそのように正しい成功機能をスペルミスしています。

+1

'contentType'はjQuery * sends *データにのみ適用されます。 'dataType'はjQuery *が受け取るデータにのみ適用されます。 'contentType: 'application/json;という正しいことです。 charset = utf-8''を削除する必要があります(デフォルトでは、jQueryはjsonではないデータをフォームエンコードします)。しかし、 'dataType'は' html''を維持する必要がありますサーバーから期待される応答の種類。 – GSerg

3

のようなあなたの値を割り当てるために、データから "'" 削除、と

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" }' 
}); 

あなたはそのエラーが出るん

Invalid Json Premitive Possible Reason

関連する問題