web-dev-qa-db-ja.com

jQuery:JSONデータをAJAX post?

私はAJAXに取り組んでいます。次のような投稿リクエストを作成します。

   $.ajax({
    'url':'http://localhost/api/create/',
    'method':'POST',
    'dataType': 'json',
    'contentType': 'application/json',
    'data':{
        "refId":585,
        "phone":"0674444444"
     },
     'success': getHandlingStatus

  });

リクエストが実行されると、データはJSONデータとしてではなく、リクエストペイロードのパラメーターとして渡されます。リクエストペイロードは次のとおりです。

refId=585&phone=0674444444

次のようなjson形式でデータを送信したい:

{
"refId":"585",
"phone:"0674444444"
}

何が足りないのですか?

5
Pracede

JSONにデータをJSONに変換し、ProcessDataオプションをfalseに設定するには、JSON.stringifyを使用する必要があります。 jqueryのドキュメントによると:

デフォルトでは、オブジェクト(技術的には文字列以外)としてデータオプションに渡されたデータは処理され、デフォルトのコンテンツタイプ「application/x-www-form-urlencoded」に適合するクエリ文字列に変換されます。 。 DOMDocumentまたは他の未処理データを送信する場合は、このオプションをfalseに設定します。

$.ajax({
'url':'http://localhost/api/create/',
'method':'POST',
'dataType': 'json',
 processData: false,
'contentType': 'application/json',
'data':JSON.stringify({
    "refId":585,
    "phone":"0674444444"
 }),
 'success': getHandlingStatus

});
9
Ahmad

JSON.stringify()を使用して、データをJSON形式に変換する必要があります。 ドキュメント を参照してください。

 $.ajax({
'url':'http://localhost/api/create/',
'method':'POST',
'dataType': 'json',
'contentType': 'application/json',
'data':JSON.stringify({
    "refId":585,
    "phone":"0674444444"
 }),
 'success': getHandlingStatus
});
0
user10047212
Have you tried the following
 $ .ajax({
 'url': 'http:// localhost/api/create /'、
 'method': 'POST'、
 'dataType': 'json'、
 'contentType': 'application/json'、
 'data':JSON.stringify({
 "refId":585、
 "phone": "0674444444" 
})、
 'processData':false、
 'success':getHandlingStatus 
 
} ); 

processData:falseの後にコンマがありませんでした

0
shashwat_247