在我看来,我有一个ajax电话:
$(".previous").click(function() {
$.ajax({
type: "POST",
url: "planner/get_cal",
data: {current_month: current_month},
success: function(msg){
alert(msg);
}
});
我的Planner控制器中的get_cal函数:
function get_cal()
{
echo "dinosaurs";
}
但是,它不会返回“恐龙”,而是返回完整的HTML页面。我无法弄清楚为什么。思考?非常感谢。
答案 0 :(得分:11)
我通过使用我的问题评论中建议的前导斜杠来解决这个问题。
$.ajax({
type: "POST",
url: "/planner/get_cal",
dataType: "text",
data: {current_month: current_month},
success: function(msg){
alert(msg);
}
});
答案 1 :(得分:4)
你也可以通过在你的php文件中添加echo之后的exit来获得它,如下所示:
function get_cal()
{
echo "dinosaurs";exit;
}
它会起作用。 :)
答案 2 :(得分:0)
尝试将dataType设置为“text”
$.ajax({
type: "POST",
url: "planner/get_cal",
data: {current_month: current_month},
dataType: "text",
success: function(msg){
alert(msg);
}
});
答案 3 :(得分:0)
当使用Controler / Method uri段的CodeIgniter结构时,我发现在jquery ajax请求中使用../../controller/method作为我的URL更容易。我还建议指定一个dataType,以便解析该字符串并将其作为对象返回。
这是一个例子;
$.ajax({
type: "POST",
dataType: "json",
url: "../../controller/method",
success: mySuccessFunction
});
答案 4 :(得分:0)
对于使用Zend Framework的任何人,我遇到的问题是AJAX响应返回完整的HTML而不是json_encode()
响应。通过将以下内容添加到我的控制器来解决此问题:
if ($this->getRequest()->isXmlHttpRequest())
{
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
}
答案 5 :(得分:0)
当您的php文件和html文件不在正确的路径上时,这些类型的问题就会出现,以便apache服务器可以解析php文件。 没有提到类型:'text'和任何其他格式,ajax也可以。 但请确保您的服务器已达到php文件。否则整个文件将被视为文本并返回。
答案 6 :(得分:0)
只是想提一下:
该URL将真正取决于您如何设置.htaccess和文件夹结构。
所以最好的方法是尝试几个网址,即:
../../controller/method
../controller/method
server_folder / index.php的/控制器/方法
http://example.com/server_folder/index.php/controller/method
然后选择在特定情况下效果最佳的那个。
答案 7 :(得分:0)
//主页视图
$("#button").click(function(e)
{
value=$("#input_value").val();
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>path",
data: "type=get_path_details&mobile="+value,
cache: true,
dataType:"html",
async: false,
success: function(data)
{
$('.apend_new_div').empty().append(data);
$('.scroll_card').css('overflow-x','scroll');
}
});
});
//控制器
public function path()
{
$id = $this->input->post("mobile");
// Some function goes here
// $template[''] = ;
$this->load->view('ajax_page',$template);
}
// ajax视图页面
<?php if($_POST['type']=='get_path_details'){if(!empty($template)){ ?>
// Html code
<?php }} ?>