Asp.net mvc 在IIS6上使用jqGrid和ASP.NET MVC 2进行POST Ajax调用会导致找不到
这让我很困惑。我在IIS6上部署了一个mvc2应用程序,除了我的jqGrid调用来获取数据外,一切都正常 在我的开发机器上一切正常,但下面是我正在使用的两个URL 本地开发人员web服务器:Asp.net mvc 在IIS6上使用jqGrid和ASP.NET MVC 2进行POST Ajax调用会导致找不到,asp.net-mvc,asp.net-mvc-2,iis-6,jqgrid,Asp.net Mvc,Asp.net Mvc 2,Iis 6,Jqgrid,这让我很困惑。我在IIS6上部署了一个mvc2应用程序,除了我的jqGrid调用来获取数据外,一切都正常 在我的开发机器上一切正常,但下面是我正在使用的两个URL 本地开发人员web服务器: POST http://localhost:port/Ctrl.mvc/JsonMethod IIS6(注意https-不确定这是否重要) 后一个URL会产生HTTP404,这真的很让人困惑,因为所有这些都可以在我的本地机器上正常工作。JsonMethod是用[AcceptVerbs(HttpVerbs.
POST http://localhost:port/Ctrl.mvc/JsonMethod
IIS6(注意https-不确定这是否重要)
后一个URL会产生HTTP404,这真的很让人困惑,因为所有这些都可以在我的本地机器上正常工作。JsonMethod
是用[AcceptVerbs(HttpVerbs.Post)]
正确声明的
编辑
这是我的一大疏忽
我所有的JSON请求都是/Ctrl.mvc/JsonMethod
。好的,在IIS服务器上,代码位于子文件夹-AppName
中。因此,我得到了404,因为https://domain/Ctrl.mvc/JsonMethod
未找到-这是正确的
基本上,我需要在部署时更改JSON请求——我真的不喜欢这样,但也许有更好的方法?查看和
在使用POST的应用程序中是否有更多URL?他们在工作吗?您是否有更多没有扩展名(如.aspx或.mvc)的URL?他们在工作吗
更新:在像您这样的所有Java脚本中,我的URL的不同基/根部分都有问题。因为你使用jqGrid,我想你也有同样的问题。如果我在Web服务器上的虚拟目录中发布我的解决方案,那么所有调用我的Java脚本的URL都将被更改。因此,我给出了window.location.pathname
并将其与'/'
拆分,然后我发现一个新的根路径
对应于新的位置。我将URL的这种重定基址放在一个函数中,我在解决方案的所有Java脚本中调用该函数。Hire是一个代码片段,在我的网站上运行非常完美:
var pathArray = window.location.pathname.split( '/' );
var rootPath = '';
for (var i = 0; i < pathArray.length; i++) {
var p = pathArray[i];
if (p === "") {
continue;
}
if (p.toLowerCase() !== 'home') {
rootPath += '/';
rootPath += p;
} else {
break;
}
}
this.urlBase = rootPath + '/Repository.svc';
this.urlExportBase = rootPath + '/ExportToExcel';
var pathArray=window.location.pathname.split('/');
var rootPath='';
对于(变量i=0;i
这个解决方案并不完美,但它是有效的。可能是您应该更改此“重定基址”功能,使其与您的一方一起工作。查看和
在使用POST的应用程序中是否有更多URL?他们在工作吗?您是否有更多没有扩展名(如.aspx或.mvc)的URL?他们在工作吗
更新:在像您这样的所有Java脚本中,我的URL的不同基/根部分都有问题。因为你使用jqGrid,我想你也有同样的问题。如果我在Web服务器上的虚拟目录中发布我的解决方案,那么所有调用我的Java脚本的URL都将被更改。因此,我给出了window.location.pathname
并将其与'/'
拆分,然后我发现一个新的根路径
对应于新的位置。我将URL的这种重定基址放在一个函数中,我在解决方案的所有Java脚本中调用该函数。Hire是一个代码片段,在我的网站上运行非常完美:
var pathArray = window.location.pathname.split( '/' );
var rootPath = '';
for (var i = 0; i < pathArray.length; i++) {
var p = pathArray[i];
if (p === "") {
continue;
}
if (p.toLowerCase() !== 'home') {
rootPath += '/';
rootPath += p;
} else {
break;
}
}
this.urlBase = rootPath + '/Repository.svc';
this.urlExportBase = rootPath + '/ExportToExcel';
var pathArray=window.location.pathname.split('/');
var rootPath='';
对于(变量i=0;i
这个解决方案并不完美,但它是有效的。您可能需要更改此“重定基址”函数,使其与您的团队一起工作。使用mvc帮助程序为jqGrid ajax函数生成url,以确保使用正确的url
$('#mygrid').jqGrid({
url: '<%= Url.Action("MyControllerJsonAction", Model.RouteValues) %>'
});
$('#mygrid').jqGrid({
url:“”
});
使用mvc助手为jqGrid ajax函数生成url,以确保使用正确的url
$('#mygrid').jqGrid({
url: '<%= Url.Action("MyControllerJsonAction", Model.RouteValues) %>'
});
$('#mygrid').jqGrid({
url:“”
});
当我使用VS2012时,将我的项目(MVC+Kendo UI)发布到IIS6.0。问题就出来了。
F12调试错误是404,Chrome说页面找不到
这是因为在url中添加Doamin时,url不正确:
正确的代码是:
function QueryExpSendList() {
var EValid = true;
var uri = AJAXBaseUrl;
if (AJAXBaseUrl.indexOf("localhost") > 0) {
uri = AJAXBaseUrl + "AJAX/QuerySendList/";
}
else {
uri = AJAXBaseUrl + "KQExpress/AJAX/QuerySendList/";
}
GenerateExpressSendGrid(uri);
$("#QueryResult").show();
}
错误代码:
function QueryExpSendList() {
var EValid = true;
var uri = AJAXBaseUrl + "AJAX/QuerySendList/";
GenerateExpressSendGrid(uri);
$("#QueryResult").show();
}
借sirili@163.com当我使用VS2012时,将我的项目(MVC+Kendo UI)发布到IIS6.0。问题就出来了。 F12调试错误是404,Chrome说页面找不到 这是因为在url中添加Doamin时,url不正确: 正确的代码是:
function QueryExpSendList() {
var EValid = true;
var uri = AJAXBaseUrl;
if (AJAXBaseUrl.indexOf("localhost") > 0) {
uri = AJAXBaseUrl + "AJAX/QuerySendList/";
}
else {
uri = AJAXBaseUrl + "KQExpress/AJAX/QuerySendList/";
}
GenerateExpressSendGrid(uri);
$("#QueryResult").show();
}
错误代码:
function QueryExpSendList() {
var EValid = true;
var uri = AJAXBaseUrl + "AJAX/QuerySendList/";
GenerateExpressSendGrid(uri);
$("#QueryResult").show();
}
借sirili@163.com如果你用GET-verb浏览其他动作,效果如何?是的,所有动作都有效-我可以浏览fine如果你用GET-verb浏览其他动作,效果如何?是的,所有动作都有效-我可以浏览fine我喜欢它;我肯定会调查类似的事情:)。谢谢奥列格!我很高兴帮助你,丹!有时,一个人用密码写答案,却听不到提问者的回答,但如果我读到“谢谢,它行得通”,就够了,我看起来也很像☺.我喜欢它;我肯定会调查类似的事情:)。谢谢奥列格!我很高兴帮助你,丹!有时,一个人用密码写答案,却听不到提问者的回答,但如果我读到“谢谢,它行得通”,就够了,我看起来也很像☺.啊,很好-从来没有想到过这一点。尽管网格的调用在一个单独的js文件中。不过值得一试,谢谢!啊,很好-从来没有想到过这一点。尽管网格的调用在一个单独的js文件中。不过值得一试,谢谢!