使用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
。
答
写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
替换'方法:'用'type:' – Rasclatt
@mccannf - 没有区别。我得到了相同的结果 – user3065931
@Rasclatt试图用mccannfs的建议和没有。同样的结果。 – user3065931