2013-04-13 136 views
0
var p = JSON.stringify(parameter); 
    console.log(p); 
    $.ajax({ 
     type: 'POST', 
     url: 'http://abc.com/ajax.php', 
     data: p, 
     success: function(status) { 
      console.log(status); 
     } 
    }); 

的console.log(P)的服务器的数据显示{"o_fname":"hh","o_lname":"jkhk","o_email":"[email protected]","o_phone":"","b_name":"bmnbmbm,b","b_address":"","b_city":"","b_postal":"","b_phone":""} 但在我http://abc.com/ajax.phpprint_r($_POST)是给我一个空数组Array()Ajax请求,发送给不工作

+0

服务器的访问日志说什么? –

+0

没有错误。没有发送到服务器的发布变量。但如果我写{“o_fname”:“hh”,“o_lname”:“jkhk”,“o_email”:“[email protected]”,“o_phone”:“”,“b_name”: “bmnbmbm,b”,“b_address”:“”,“b_city”:“”,“b_postal”:“”,“b_phone”:“”}它的作品 – iThink

+0

你尝试过'contentType:'json','或'json_decode();' –

回答

0
var p = JSON.stringify(parameter); 

是你的问题。

当您将字符串数据传递给.ajax时,它会按原样发送它 - 但如果PHP收到编码为application/x-www-form-urlencoded的数据,则只会弹出$ _POST。

所以使您的数据转换成字符串,而是直接通过您的parameter对象作为价值data - 然后jQuery将采取发送它的正确方式护理,使PHP懂得什么是应该做的用它。

0

我认为问题的公园可能是数据中的:你传递参数的细​​节,而是传递给jQuery另一端的函数,你传递了一个参数名称而没有别的。

尝试:

$.ajax({ 
    type: 'POST', 
    url: 'http://abc.com/ajax.php', 
    data: {parametername:p}, 
    success: function(status) { 
     console.log(status); 
    } 
}); 

随着参数名称与参数名称ajax.php更换期待。

+0

我的数据是{“o_fname”:“hh”,“o_lname”:“jkhk”,“o_email”:“[email protected]”,“o_phone”:“”,“b_name”:“bmnbmbm,b” ,“b_address”:“”,“b_city”:“”,“b_postal”:“”,“b_phone”:“”}&p就是这个意思。和ajax.php期待o_fname,o_lname&... – iThink

+0

尝试更改ajax.php以期望您发送的对象并推断您从所述对象获得的数据。无论哪种方式,现在它只是得到一个空的参数p。 – shadowmaster13