我正在使用这个简单的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"
答案 0 :(得分:0)
在JS中指定POST中的返回类型:
dataType: json
答案 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
。