我总是用这种方式编写由AJAX调用使用的URL:"/Home/Save"
,其中以正斜杠开头。现在这个最后的项目被部署到服务器上的虚拟目录。因此,这些网址不再有效,因为它们不是"example.com/VirtualDir/Home/Save"
,而是指向"example.com/Home/Save"
这是错误的。我通过在我的JavaScript中的所有URL中删除第一个正斜杠"/"
来快速修复此问题。所有页面都很好,除了一个!当AJAX调用发生在有问题的页面上时,指定的URL会被追加到页面URL。我昨天和今天整个上午都花了几个小时,但我无法弄清楚。这个页面与其他页面完全没有什么不同。有没有人有过这个问题?我应该发布我的代码吗?jQuery中正斜杠“/”的问题AJAX
编辑︰我的头在键盘上敲了几个小时后,我结束了以下实施。我在一个共同的控制器中得到了一个动作,返回Request.Url.GetLeftPart(UriPartial.Authority)
的结果,这是您的http://www.mysite.com
。我将它在我的Layout页面中渲染成一个全局JavaScript变量,_AppPath
。然后,每个AJAX调用都会得到如下的URL:_AppPath + '/Controller/Action'
。这在任何地方都行得通,我仍然不知道那个黑客是什么问题。干杯!
这一页有一个非常不同的网址吗?除了这个问题之外,是什么使这一个页面不同? – NickAldwin 2011-05-26 16:09:08
@NickAldwin - 绝对没有。它是.NET MVC。我拥有的所有页面都是其中包含1 - 3个部分视图的视图。网址都像'localhost:2244/Home/Display',JavaScript在每个视图上都以完全相同的方式写入剃须刀部分。总是有一个$(document).ready()从JS文件调用Init函数,该文件设置触发AJAX调用的点击处理程序。无处不在。 – Dimskiy 2011-05-26 16:23:28