AJAX 返回 PHP 和 head.php(页面源代码)

Posted

技术标签:

【中文标题】AJAX 返回 PHP 和 head.php(页面源代码)【英文标题】:AJAX Returning PHP and head.php (page source) 【发布时间】:2016-02-15 22:44:58 【问题描述】:

我这里有一些 ajax:

$.ajax(
    type: "POST",
    url: "<?=site_url('front_office/get_email_list/')?>",
    dataType: "text",
    success: function(response) 
        console.log(response)
    
);

由于某种原因,此代码返回了所需的 php,但它也返回了我的 head.php 文件。

function get_email_list() 
    $center_ids = array(
        /* list of user ids */
    );
    print_r(json_encode($this->user_model->get_email_list($center_ids)));
     /* get_email_list($center_ids)) returns a database query result */

最后,我的 head.php 包含你常用的带有 javascript 和 css 导入的 &lt;head&gt; 标签。

输出看起来像:

**** return from php *****&lt;head&gt;header stuff&lt;/head&gt;

我宁愿不解析头信息,而是只获取 PHP 输出。

注意:我正在使用 codeiginiter,并且正在调用 front_office 控制器中的函数。

第二点:我知道我现在没有发布任何内容,但我很快就会发布。我试过GET,但问题仍然存在。

【问题讨论】:

推荐看看 RESTful server for codeiginiter 的实现:github.com/chriskacerguis/codeigniter-restserver 由于某种原因,此代码返回了所需的 PHP,但它也返回了我的 head.php 文件。 这不是该文件中的所有代码。所以无论是什么发送你没有向我们展示的主要内容 【参考方案1】:

您正在返回视图,检查请求,如果不是 ajax,则加载视图,否则将 json 编码结果返回到您的 ajax 请求。

if (!$this->input->is_ajax_request()) 
   // load view      
else
    // Adding header, so jQuery ajax request will know that it is json
    // and result will be parsed immediately
   $this->output->set_content_type('application/json');
   $this->output->set_output(json_encode($email_list_result));

有关返回 JSON 的更多信息,请访问: Returning JSON from a PHP Script

另外,检查你是否在构造方法中加载了 head.php ? 请从控制器发布整个代码。

【讨论】:

以上是关于AJAX 返回 PHP 和 head.php(页面源代码)的主要内容,如果未能解决你的问题,请参考以下文章

如何通过php的curl模拟ajax请求,获取其返回值

PHP、jQuery Ajax 和 json 跨域返回

使用 ajax jquery php 和 mysql 制作账单

PHP + jQuery + Ajax 表单提交 - 同一页面返回结果

php ajax返回无故刷新页面

尝试执行单独的 PHP 查询时 AJAX 返回当前页面