Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript CQ:为什么jquery在我的web服务url的开头添加/ajax?_Javascript_Jquery_Internet Explorer 9_Aem - Fatal编程技术网

Javascript CQ:为什么jquery在我的web服务url的开头添加/ajax?

Javascript CQ:为什么jquery在我的web服务url的开头添加/ajax?,javascript,jquery,internet-explorer-9,aem,Javascript,Jquery,Internet Explorer 9,Aem,我编写了一个小servlet,它以RSS提要的形式输出数据。它在我的Web服务器上运行,位于/services/rss.servlet,并且很好地返回数据 在我的网页中,我尝试从rss servlet加载数据,如下所示: $(document).ready(function() { $.get("/services/rss.servlet") .done(function(data) { console.log("Success: " + data); })

我编写了一个小servlet,它以RSS提要的形式输出数据。它在我的Web服务器上运行,位于/services/rss.servlet,并且很好地返回数据

在我的网页中,我尝试从rss servlet加载数据,如下所示:

$(document).ready(function() {  

  $.get("/services/rss.servlet")
   .done(function(data) {
      console.log("Success: " + data);
    })
   .fail(function( jqxhr, textStatus, error ) {
      var err = textStatus + ", " + error;
      console.log( "Request Failed: " + err );
      });
});
大多数情况下,这很好,我得到了数据。但有时请求会失败,我会在“网络调试”页面中看到以下请求:

Request GET /ajax/services/rss.servlet HTTP/1.1

为什么我看到我的URL前面有/ajax?它在JQuery中似乎完全没有文档记录。特别是,我在IE9的“怪癖”模式下一直注意到这种行为,但在IE9的标准浏览器模式下却没有注意到。

我发现这个问题是Adobe CQ/WEM的一个“功能”所独有的

在“正常”布局中,CQ将公开以下子目录:

www.example.com/apps
www.example.com/libs
www.example.com/etc
但是,CQ包含的代码允许它托管在比文档根更深的相对URL中,以防您的目录结构碰巧是

www.example.com/subdirectory/cqRoot/apps 
www.example.com/subdirectory/cqRoot/etc
www.example.com/subdirectory/cqRoot/libs
支持这一点的代码都是客户端javascript,它扫描
以查找这些目录,并找出CQ“应该在哪里”

在我们的例子中,
中的第一项是
,CQ认为这意味着应用程序存储在/ajax下

从Felix控制台的CQ 5.6开始,有一种配置可以阻止此功能

您还可以在
中强制禁用它,以便它不会自动检测

<script>
  window.CQURLInfo = window.CQURLInfo || {};
  CQURLInfo.contextPath = "";
</script>

window.CQURLInfo=window.CQURLInfo | |{};
CQURLInfo.contextPath=“”;