php错误“;标题已设置";在脚本的第1行

php错误“;标题已设置";在脚本的第1行,php,jquery,xml,ajax,Php,Jquery,Xml,Ajax,我有一个php脚本,它应该为ajax调用生成一个xml文件。它正在生成以下错误消息: 警告:无法修改标题信息-标题已由第2行的/home/ocp/public_html/sites/all/modules/bookDisplay/getVersions.php:1)中的/home/ocp/public_html/sites/all/modules/bookDisplay/getVersions.php发送 奇怪的是,php脚本的开头如下所示: <?php header('content

我有一个php脚本,它应该为ajax调用生成一个xml文件。它正在生成以下错误消息:

警告:无法修改标题信息-标题已由第2行的/home/ocp/public_html/sites/all/modules/bookDisplay/getVersions.php:1)中的/home/ocp/public_html/sites/all/modules/bookDisplay/getVersions.php发送

奇怪的是,php脚本的开头如下所示:

<?php
  header('content-type:application/xml;charset=utf-8');
function getVersions(){
  var bookSelected = $.data(document.body, 'book');
  $.ajax({
    cache:"false",
    type: "GET",
    dataType: "xml",
    url: "sites/all/modules/bookDisplay/getVersions.php",
    data: "book=" + bookSelected,
    success:function(xml){

    }
  });
}

这个jquery函数是否以某种方式发送与php文件中发送的头冲突的头?我已经尝试删除“dataType”声明,这确实消除了错误消息。但随后响应返回为text/html,而不是xml。如何在没有“headers ready sent”错误的情况下获得对ajax调用的正确xml响应?

请注意,在发送任何其他消息之前,应先发送。确保在header函数之前没有code/html甚至空格/缩进,并且在第一次打开php标记之前没有任何内容


也要注意可能存在的问题。

请注意,在发送任何其他邮件之前,应先发送。确保在header函数之前没有code/html甚至空格/缩进,并且在第一次打开php标记之前没有任何内容


也要注意可能存在。

检查
前面是否有空白。您查看了文件的编码了吗?这可能会导致发送头。可能重复检查
前是否有空格你看过文件的编码了吗?这可能会导致发送标题。可能是重复的感谢,我没有看到任何人建议可能有BOM。我怎样才能知道它是否在那里?@Ian:你可以通过在“表示”列下编码来检查维基百科文章“字节顺序标记的表示”中的字符。或者在SO中搜索BOM:)谢谢,我没有看到任何人建议可能有BOM。我怎样才能知道它是否在那里?@Ian:你可以通过在“表示”列下编码来检查维基百科文章“字节顺序标记的表示”中的字符。或在SO中搜索BOM:)