我正在尝试创建一个简单的AJAX调用进行测试,但遇到了问题。我已经在我的AJAX调用中嵌套了一个成功函数,它应该弹出一条警告消息,但事实并非如此。检查firebug,POST成功并以“A20”(不带引号)响应。我的代码中有什么问题吗?
index.php(查看)
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="init.js"></script>
<script src="jquery-1.10.2.min.js"></script>
</head>
<body>
<button id="your_button">Push me</button>
</body>
</html>
init.js
$(function() {
$('#your_button').bind("click", function() {
var json_data = {"category": "A", "size": "20"};
$.ajax({
url: "posted.php",
dataType: "json",
type: "POST",
cache: false,
data: {"data": json_data},
success: function (data) {
if (!data.error) {
alert('k');
} else {
alert('error!');
}
}
});
});
});
posted.php
$category = $_POST['data']['category'];
$tsize = $_POST['data']['size'];
echo ($category);
echo ($size);
答案 0 :(得分:1)
这不对:
data: {"data": json_data}
这样做:
data: {data: json_data}
答案 1 :(得分:1)
您需要在PHP中设置正确的标头并从PHP文件发送有效的json响应。将这些行添加到PHP
header('Access-Control-Allow-Origin: *');
header('Content-type: application/json');
并回显一些有效的json,如echo&#39; {&#34; auth&#34;:&#34; true&#34;,&#34;错误&#34;:&#34; false& #34;}&#39 ;;
答案 2 :(得分:1)
试试这个 -
$(function() {
$('#your_button').bind("click", function() {
var json_data = {"category": "A", "size": "20"};
$.ajax({
url: "posted.php",
dataType: "json",
type: "POST",
cache: false,
data: json_data,
success: function (data) {
if (!data.error) {
alert('k');
} else {
alert('error!');
}
}
});
});
});
Posted.php
$category = $_POST['category'];
$tsize = $_POST['size'];
//echo ($category);
//echo ($tsize);
echo json_encode($_POST);
你想要的json数据,但你没有回应json数据
答案 3 :(得分:1)
首先,您使用两个jquery库,删除其中任何一个。
第二次用data: {"data": json_data},
替换data: json_data,
。
第三个发布.php使用$category = $_POST['category']
和$tsize = $_POST['size'];
。
希望它会对你有所帮助。