我有一个这样的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'];
?>
像这样的,您可以获得其他值并执行您的工作!