jQuery:如何在AJAX发布中发送JSON数据?

Pra*_*ede 5 ajax jquery post content-type

我正在研究AJAX。我创建如下的发帖请求:

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

  });
Run Code Online (Sandbox Code Playgroud)

执行我的请求时,数据将作为参数传递到我的请求有效负载中,而不是作为JSON数据传递。这是我的请求有效负载:

refId=585&phone=0674444444
Run Code Online (Sandbox Code Playgroud)

我想以json格式发送数据,例如:

{
"refId":"585",
"phone:"0674444444"
}
Run Code Online (Sandbox Code Playgroud)

我想念什么?

Ahm*_*mad 9

您需要使用JSON.stringify将数据转换为JSON,并将ProcessData选项设置为false。根据jQuery的文档:

默认情况下,作为对象传递到data选项的数据(从技术上讲,不是字符串)将被处理并转换为查询字符串,以适合默认的内容类型“ 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

});
Run Code Online (Sandbox Code Playgroud)