2017-10-01 40 views
0

我正在制作注册表单并通过ajax提交数据并通过接收发布的数据$ input = json_decode(file_get_contents(“php:// input”));无法通过AJAX获取表单发布JSON对象数据

服务器上未收到任何值,返回null作为响应。

这是我的AJAX代码: 在提交表单这个函数被调用,并接收所有输入在FORMDATA对象

function register() { 
    var formData={ 
    h_no:$('input[name=h_no]').val(), 
    h_name:$('input[name=h_name]').val(), 
    total_rooms:$('input[name=total_rooms]').val(), 
    total_blocks:$('input[name=total_blocks]').val(), 
    h_id:$('input[name=h_id]').val(), 
    pwd:$('input[name=pwd]').val(), 
    c_pwd:$('input[name=c_pwd]').val(), 
    } 
    console.log(formData); 
    $.ajax({ 
    type:'POST', 
    url:'../api/hostels/register.php', 
    dataType: 'json', 
    data:formData, 
    success:function(data) { 
     console.log(data); 
    } 
    }); 
} 

这是我PHP code: 在这里,我收到JSON数据和解码它处理并返回JSON响应返回的这个

header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 
header("Access-Control-Allow-Methods: POST"); 
header("Access-Control-Max-Age: 3600"); 
header("Access-Control-Allow-Headers: Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With"); 

$input = json_decode(file_get_contents("php://input")); 


/* application code is written here */ 

echo json_encode($input); 

输出快到空

+0

由于属性'dataType:json' __并不意味着您将json发送到服务器。 –

+0

那么我该如何发布这个json到服务器 –

+0

作为一个简单的数组发布到服务器的数据。例如,使用'$ _POST'。顺便说一句,你的客户端上没有任何json。你有一个javascript对象,它不是json。 –

回答

0

使用JSON.stringify(formData)来发布数据。