Ajax响应之前的空间(jQuery,PHP)

Bra*_*rad 6 php ajax jquery

我正在使用jQuery来发出ajax请求.数据很好地进入PHP,但响应没有正确回到javascript.不知何故,在回应之前有一个空间.我知道这是因为Firebug这么说而且我的代码不起作用,因为空间就在那里.当我希望有一个空间时,它工作正常.关于什么可以添加空间的任何想法?

这是我的ajax功能:

function my_ajax (aurl, adata, aretfunc) {
 $.ajax({
  type: "POST",
  url: aurl,
  data: adata,
  success: function(msg) {
    eval(aretfunc+'(msg);');
  }
 });
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ica 18

查找<?php ?>PHP文件中标记之外的虚假空白字符.执行PHP脚本时,任何此类空格都将得到输出.如果您的PHP文件包含其他PHP文件,那么同样的事情也适用于这些文件.

  • +1这可能是最阴险的错误之一.我在与第三方供应商一起处理一些PHP代码时遇到过这种情况.在一次迭代中,没有测试,他们决定在自己的PHP块中的每个文件的顶部添加一个注释块,然后在实际的PHP代码块之前添加一个空行.那个空白行被认为是发送到浏览器的内容,因此随后需要设置http标题的任何/所有代码(例如)都失败了. (2认同)

cgp*_*cgp 5

同意,寻找外面的虚假空白字符<?php ?>.一个建议,一个完全合法的建议就是简单地删除尾随?>,因为它们是不必要的.事实上,它是Drupal的编码标准.


Rya*_*ath 5

在某些情况下,我发现在做任何事情之前通过 $.trim() 运行响应可以很好地工作。

当然,上面的解决方案仍然非常适用,但是如果您处于无法更改的情况,我认为值得放弃。