【问题标题】:ajax not working in codeigniterajax 在 codeigniter 中不起作用
【发布时间】:2012-11-05 16:53:34
【问题描述】:

我正在尝试使用 ajax jquery 函数发送一个发布请求,并将一些数据异步返回到一个窗口中。这是我到目前为止所拥有的。它似乎不起作用。

在视图中:

$.ajax({
          url: '/dashboard/presskits/media/get_video_link/',
          type: 'POST',
          dataType: 'json',
          data: { encoded_link : encoded_link },
          cache: false,
          success: function(output_string){
            // $('#edit_video_info').append(output_string);
            alert(output_string.url_data);
          } // End of success function of ajax form
          }); // End of ajax call
}); 

在控制器中:

 public function get_video_link()
{
    $temp_url = $this->input->post('encoded_link');
    $output_string = json_encode(array('url_data' => $temp_url));
            return $output_string;
    } 

【问题讨论】:

  • 你使用的是json所以你需要返回字符串echo json_encode($output_string);的json编码

标签: jquery ajax codeigniter


【解决方案1】:

打印或回显不返回 JSON,您也应该包含成功。

print json_encode(array('Status' =>'Success', 'url_data' => $temp_url));

【讨论】:

    【解决方案2】:

    只需使用echoprint 更改您的退货。

    【讨论】:

      【解决方案3】:

      首先,您是否启用了 URL 助手?我认为您的 URL 字段不正确。在配置中启用您的 URL 助手并像这样回显您的基本 URL

      url: "<?php echo base_url(); ?>dashboard/presskits/media/get_video_link/"
      

      另外,我建议使用 chrome 或 firefox 开发人员工具来检查您的请求中的 HTTP 响应标头。在 Chrome 上,只需右键单击-> 网络,然后触发您的 ajax 请求。

      其次,您应该在控制器中回显响应,而不是返回它。在低层次上,当一个函数返回一个值时,它将该值存储在寄存器(内存)中,这一切都发生在堆栈中。换句话说,它不是 I/O 操作。 Echo 会将 json 文本直接输出到浏览器(这是 ajax 调用所期望的)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-03-07
        • 2016-07-30
        • 2015-03-07
        • 2018-12-11
        • 2023-03-05
        • 2020-05-14
        • 1970-01-01
        相关资源
        最近更新 更多