我的部分网络应用程序使用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函数。
答案 0 :(得分:2)
不以/(或完整域路径)开头的Ajax请求(或来自页面的任何http请求)相对于当前HTML文件路径是 。
使用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 = * 。