XML不能是整个程序

时间:2010-11-09 04:53:50

标签: jquery ajax json

XML cannot be the whole program - 其他人看到过这个firebug错误?当通过ajax接收远程数据(json,原样)时发生。

如果数据类型已将 json 更改为 html ,则可以正常使用。

这是我在php中的实际代码:

一旦会话过期,我就重新加载了页面。

if($action->getRequest()->isXmlHttpRequest())
{           
  $action->getResponse()->setContent("<script>window.location.reload();</script>");      
  $action->getResponse()->send();      
}

firebug显示以下错误:

XML不能是整个程序 [打破此错误] window.location.reload();

3 个答案:

答案 0 :(得分:1)

您是否从Ajax调用中传递了正确的数据格式?错误说这与XML有关,但是你说你把它设置为JSON而不是XML。

答案 1 :(得分:0)

您发送的字符串"<script>window.location.reload();</script>"不包含JSON / JS,而是HTML。因此客户端尝试将字符串解释为JSON / JS,但注意到整个脚本只是一个XML文字。

答案 2 :(得分:0)

以这种方式加载时无法使用标记。尝试加载Javascript语句而不使用加载文件中的标记。 e.g:

如果我动态加载它,此代码会生成相同的错误。

<?php
    echo "<script type='text/javascript'>alert('Hi');</script>";
?>

此代码不会产生任何错误,而是像魅力一样:

<?php
    echo "alert('Hi');";
?>

这应该会帮助你。