JQuery AJAX URL Local或Absolute

时间:2014-06-11 13:33:54

标签: javascript jquery ajax

我的部分网络应用程序使用AJAX。我正在使用JQuery AJAX调用来添加和删除用户购物车中的项目,它工作正常。我在AJAX调用中作为参数传递的URL是web.xml文件中定义的url-mapping,减去前导正斜杠。

我试图在应用程序中的另一个地方复制它,我想使用AJAX,但这一次,Servlet GET甚至都没有被调用。我在javascript函数中有警报,所以我知道正在调用函数。有没有办法可以看到(在ajax函数调用中)GET请求的完全限定URL是什么?此外,什么是'规则'关于AJAX URL?有没有办法可以进入上下文根?我的Servlet映射到www.mydomain.com/contextRoot/un

我宁愿不必将上下文根硬编码到函数调用中,这样如果它发生了变化,我就不必更新我的所有javascript函数。

3 个答案:

答案 0 :(得分:2)

"规则"

不以/(或完整域路径)开头的Ajax请求(或来自页面的任何http请求)相对于当前HTML文件路径是

如何查看GET请求

使用Chrome / Firefox中的调试工具或类似Fiddler2

的内容

如何获取服务器根目录

如果是简单的www.host.com

var root = location.protocol + '//' + location.host;

(不确定这是否适用于基于上下文的域。)

您没有提到您正在使用的服务器技术,但是如果您使用的是MVC / Razor,则可以在主页头中将服务器根注入到Javascript变量中:

<script type="text/javascript>
    window.domainRoot = "@(Url.Content("~/"))";
<script>

这会注入一个javaScript行,如:

  window.domainRoot = "http://www.mydomain/mycontext/";

然后,您可以从任何JavaScript代码中引用window.domainRoot

如果您使用的是PHP,则会有一种注入服务器根目录的等效方法。

答案 1 :(得分:1)

一个简单的浏览器调试器(F12),您可以读取网络流量发送。

从这里可以看到所有细节(发送和/或接收)

答案 2 :(得分:0)

我认为url plus参数是contextRoot / un?para = *