ajax请求返回html,而不是实际值 - PHP

时间:2013-03-06 20:10:33

标签: php ajax

我正在使用这个简单的PHP框架,在与其他人Custom PHP的一些不满之后

我有以下控制器:

<?php

class TestController extends BaseController
{

    public function __construct($action, $urlValues) {
        parent::__construct($action, $urlValues);
    }

    public function deploy_test() {
        echo json_encode("helloworld");
    }
}
?>

该功能由名为.js的{​​{1}}函数激活:

test()

但是,我得到的是function test() { var data = { config : $("#config").val(), machines : $("#machines").val(), test : $("#test").val(), product : $("#product").val(), }; $.post('./index.php/test/deploy_test/', data, function( answer ){ create_bar(); console.log( answer ); }); } 页面,index.php本身,而不是预期的html字符串。我不知道是怎么回事。愿有人讨好我吗? 输出是:

"helloworld"

2 个答案:

答案 0 :(得分:0)

在JS中指定POST中的返回类型: dataType: json

http://api.jquery.com/jQuery.post/

答案 1 :(得分:0)

在发送json_encode("helloworld")之前,您需要在服务器端设置正确的标头信息,以便ajax在读取答案之前可以预期json值。例如,第一行可以是:

header('Cache-Control: no-cache, must-revalidate'); // no cache
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json'); // json type

您也需要像David建议的那样在您的ajax请求中添加dataType: json