我在我的应用程序中使用codeigniter并且有一个完美运行的jquery post函数。
$.post('getticketstacktype', {ticketnumber:ticketnumber},function(result) {
alert(result);
}
然后我在另一个编辑页面上使用完全相同的post函数。此页面预装了PHP并且工作正常。
我使用相同的帖子来调用我的控制器,我已经检查过票号是否正确
$.post('getticketstacktype', {ticketnumber:ticketnumber},function(result) {
alert(result);
}
它调用的控制器功能是:
function getticketstacktype(){
if (isset($_POST['ticketnumber'])){
$ticketnumber = $_POST['ticketnumber'];
$data = $this->wos_model->getticketstacktype($ticketnumber);
$this->output->set_content_type('application/json')->set_output(json_encode($data));
}
}
现在这可以正常工作,结果是'7'但是,在我的编辑页面上,它返回我呈现的整个视图页面:
所以<html><head>......</html> hundereds of lines)
我无法弄清楚为什么我的整个页面会在另一个视图中工作时返回到jquery帖子。
我还验证了两个视图中的帖子信息与firebug相同。
有什么建议吗? 一如既往地谢谢。
答案 0 :(得分:1)
这通常发生在后端发生致命错误时。当PHP上发生致命错误时,它会构造一个页面以显示包含在框中的一些错误消息。 jQuery尝试解释为有意义的数据,但它失败了。如果您在Firebug或Google Chrome Dev工具中看到此响应,您实际上可以看到该页面可以呈现。
答案 1 :(得分:0)
我认为你需要这个:
在标题中定义脚本标记:
var base_url = '<?php echo base_url() ?>'; //here we keep the base url in a variable to use in our js files
然后在上面的行下面加js file
调用你的ajax,这样我们就可以访问上面的变量了。
现在您的ajax function
需要像这样更改:
$.post(base_url+'controller_name/getticketstacktype/', {ticketnumber:ticketnumber},function(result) { //here if you see the absolute path to the funciton is given
alert(result);
}
如果有错误,您还需要检查您的萤火虫net panel
和console
是否有任何错误。祝你好运。 :d