【问题标题】:Three new lines before rendering anything in CakePHP breaks ajax在 CakePHP 中渲染任何东西之前的三个新行会破坏 ajax
【发布时间】:2012-08-24 05:57:19
【问题描述】:

我需要 CakePHP 1.3 中的一个函数来呈现 jquery 函数使用的值,但它总是在破坏 jquery 的值之前呈现三个新行。设置这些headers 中的任何一个都没有帮助

header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
header('Content-Type: text/x-json');
header("X-JSON: ".$content);
echo $content;

jquery 使用:

var content = $.ajax({ url: /link/to/cakephp/function ,async: false }).responseText;

我可以修复那三行或 jquery 函数吗?

【问题讨论】:

  • 你的视图中有$this->layout = 'ajax'吗?
  • 已经尝试过$this->autoRender = false;$this->layout = 'ajax';autoRender 设置为false 我只在控制器中显示该值,如果为真我制作一个视图。但无论如何,在呈现视图/值之前我总是得到 3 个空行

标签: php jquery ajax cakephp http-headers


【解决方案1】:

您可以使用trim() 删除多余的空格和换行符:

echo trim( $content );

【讨论】:

  • 这些行不是来自变量
【解决方案2】:

带有标题的文件。是否呈现为 HMTL?如果有,文档类型是什么?依稀记得以前有过类似的问题。希望对您有所帮助。

【讨论】:

    【解决方案3】:

    我发现了问题.. 它的 ?> 在配置文件的末尾,后面有换行符。 删除 ?> 和换行符,你就失去了 "\n\n\n"...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-21
      • 1970-01-01
      • 2021-07-27
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多