AJAX成功函数不执行

时间:2014-04-18 09:54:05

标签: php jquery ajax

我正在尝试创建一个简单的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);

4 个答案:

答案 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'];

希望它会对你有所帮助。