我在一个ajax更新的页面中看到一个奇怪的错误。
请求如下所示:
var a = new Ajax(url,{
method: 'get',
onComplete: function( response ){
$('loader').style.display="none";
readData( response );
}
});
a.request();
return;
到目前为止,这几乎在任何系统上都可以正常工作,但是在新的服务器上它会中断,并且有一个mootools错误“未知的XML实体”。奇怪的是,如果您使用firebug跟踪请求,而不是按预期返回JSON,响应正文如下所示:
<script>document.location.href='http://www.mysite.com?myparams=value&etc;</script>
但是,如果您实际通过在脚本标记(响应正文)中粘贴URL以及浏览器中的参数来手动发出该请求,则会返回正确的JSON数据。
为什么请求会返回脚本标记而不是数据的任何想法?
答案 0 :(得分:0)
正如Dimitar在上面的评论中所说,由于一个名为sh404SEF的URL重写工具,这在Joomla网站中是一个问题。根据开发人员的说法,修复方法是在高级配置选项中将“301 redirect”参数设置为“no”。
所以这与我的代码或ajax函数无关,而是破坏请求的SEF重写组件。