Asp.net mvc 3 Asp.net MVC 3 FullCalendar Ajax调用失败
我的简单测试应用程序在本地IIS服务器上运行良好。 当我将它发布到我的共享托管环境(discountasp.net)时,AJAX调用Asp.net mvc 3 Asp.net MVC 3 FullCalendar Ajax调用失败,asp.net-mvc-3,fullcalendar,Asp.net Mvc 3,Fullcalendar,我的简单测试应用程序在本地IIS服务器上运行良好。 当我将它发布到我的共享托管环境(discountasp.net)时,AJAX调用 $("#calendar").fullCalendar({ eventSources: [{ url: '/Home/GetCurrentMonth', type: 'Get', error: function () {
$("#calendar").fullCalendar({
eventSources: [{
url: '/Home/GetCurrentMonth',
type: 'Get',
error: function () {
alert('there was an error while fetching events!');
}
}]
});
失败了。Firebug显示带有正确参数的get到达,并给出“404未找到”错误。我可以看到控制器方法“GetCurrentMonth”从未被调用过(使用我输入的一些log\audit代码)
由于我的本地IIS服务器运行正常,我无法将IIS7管理器连接到远程站点以获取“失败的请求跟踪”。。我有点困了
如果没有magic web.config设置(哦,请!),我会满足于推荐一个支持ASP.NET MVC 3的“共享托管环境”,在那里FullCalendar可以工作,我会移动应用程序(我当前的托管环境没有那么有用)。从来没有像你那样硬编码URL。在ASP.NET MVC应用程序中生成url时始终使用url帮助程序:
$('#calendar').fullCalendar({
eventSources: [{
url: '@Url.Action("GetCurrentMonth", "Home")',
type: 'GET',
error: function () {
alert('there was an error while fetching events!');
}
}]
});
或者,如果这是在一个单独的javascript文件中,您没有访问服务器端代码的权限,一种可能是使用HTML5 data-*属性,例如:
<div id="calendar" data-url="@Url.Action("GetCurrentMonth", "Home")"></div>
我打赌50美元你的代码在部署时不起作用的原因是因为IIS附加了一个虚拟目录。因此,正确的url不是
/Home/GetCurrentMonth
,而是/YourApplicationName/Home/GetCurrentMonth
。为了避免所有这些问题,在生成URL时应始终使用帮助程序。不要像以前那样硬编码URL。在ASP.NET MVC应用程序中生成url时始终使用url帮助程序:
$('#calendar').fullCalendar({
eventSources: [{
url: '@Url.Action("GetCurrentMonth", "Home")',
type: 'GET',
error: function () {
alert('there was an error while fetching events!');
}
}]
});
或者,如果这是在一个单独的javascript文件中,您没有访问服务器端代码的权限,一种可能是使用HTML5 data-*属性,例如:
<div id="calendar" data-url="@Url.Action("GetCurrentMonth", "Home")"></div>
我打赌50美元你的代码在部署时不起作用的原因是因为IIS附加了一个虚拟目录。因此,正确的url不是
/Home/GetCurrentMonth
,而是/YourApplicationName/Home/GetCurrentMonth
。为了避免所有这些问题,在生成URL时应始终使用帮助程序。“IIS附加了一个虚拟目录”,您确定吗?搜索“site:discountatsp.net”返回了许多使用子域的点击率(例如stocks.paul.discountatsp.net)@bzlm,不,我不确定,我不知道这个托管网站,但鉴于症状,我打赌50美元这是他的问题。404迁移到生产环境时出错=>在99.999999%的情况下,这是由于硬编码URL造成的。@darin,我的意思是,如果这是唯一不起作用的事情,并且应用程序位于虚拟目录中,那么这必须是唯一使用硬编码路径的地方-否则,链接就不会起作用。但似乎是这样。(:“有一个由IIS附加的虚拟目录”,你确定吗?搜索“site:dispontasp.net”返回了许多使用子域的点击率(例如stocks.paul.dispontasp.net)@bzlm,不,我不确定,我不知道这个托管站点,但考虑到这些症状,我打赌50美元这是他的问题。在99.999999%的情况下,这是由于硬编码的URL造成的404错误=>在99.999999%的情况下。@darin,我的意思是,如果这是唯一不起作用的事情,并且应用程序在虚拟目录中,那么这一定不是他是唯一一个使用硬编码路径的地方——否则,任何链接都不会起作用。但看起来确实如此。(: