使用jQuery AJAX传递JSON对象到PHP文件


Using jQuery AJAX to pass JSON Object to PHP file

我有一个这样的JSON对象(分配给var card;):

{
    card_no: "1", 
    card_name: "wwwgdefonru",  
    img_id: 1, 
    img_thumb: "albums/070915_E239/thumbs/001_wwwgdefonru.jpg", 
    img_hires: "albums/070915_E239/thumbs_hires/001_wwwgdefonru.jpg"
}

我想用AJAX把这个传递给一个php支持文件。

这是我的AJAX调用:

jQuery.ajax({
    method: 'POST',
    url: ajax_file,
    type: 'JSON',
    data:  card,
    dataType: 'html',
    cache: false,
    success: function(html){
        console.log('SUCCESSO');
        jQuery('#debug').html(html);    
    },
    complete:function(){
        console.log('COMPLETE');
    }
});

在我的PHP文件中(只是为了调试目的),我像这样输出传递的数据:

echo '<pre>';
    print_r($_POST);
echo '</pre>';

AJAX调用成功完成。但是输出是空的:

Array
(
)

我做错了什么?

<

解决方案/strong>

我正在做一个使用旧版本jQuery的项目(不要问…)。通过查看文档(http://api.jquery.com/jquery.ajax/),我可以看到使用method: 'POST'设置方法不起作用,因为我使用的JQ版本不支持它。把它换成type: 'POST',去掉type: 'JSON',它就固定了。

如果我没有查看网络选项卡并看到请求方法是GET,即使我已将其定义为POST,我也不会发现这一点。

这种写法对你来说是如此的容易

$.post("your_php_file_url.php",
    {
        card_no: "1", 
        card_name: "wwwgdefonru",  
        img_id: 1, 
        img_thumb: "albums/070915_E239/thumbs/001_wwwgdefonru.jpg", 
        img_hires: "albums/070915_E239/thumbs_hires/001_wwwgdefonru.jpg"
    },
    function(data, status){
        alert("Response Message" + data + "'nResponse Status: " + status);
    });

在PHP站点中,使用

读取值
<?php
     echo $_POST['card_no'];
?>
像这样的

,您可以获得其他值并执行您的工作!