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

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

问题描述:

我有这样一个JSON对象(分配给var card;):使用jQuery AJAX以JSON对象传递给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" 
} 

我想这个使用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文件(只用于调试)I输出传递的数据,像这样:

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

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

Array 
(
) 

我在哪里出错了?

SOLUTION

我工作的一个项目与旧版本的jQuery(不要问...)。从查看文档(http://api.jquery.com/jquery.ajax/)我可以看到使用method: 'POST'设置方法不起作用,因为它不受我使用的JQ版本的支持。切换到type: 'POST'并摆脱type: 'JSON'修复它。

我不会发现这个,我没有看过网络标签,看到请求方法是GET即使我已经定义它为POST

+0

替换'方法:'用'type:' – Rasclatt

+0

@mccannf - 没有区别。我得到了相同的结果 – user3065931

+0

@Rasclatt试图用mccannfs的建议和没有。同样的结果。 – user3065931

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']; 
?> 

这样你可以得到其他值的价值和做你的作品!

+2

从头开始重新开始*可能会解决问题,除非您可以识别现有代码的实际问题,否则难以确定。 – Quentin