FTP部署了Microsoft MVC3网站。 POST协议不起作用。 GET协议正在工作
我正在开发一个使用Microsoft MVC3的网站,并且已经将其构建在默认的MVC3应用程序模板上。它访问外部数据库并在本地主机上工作。FTP部署了Microsoft MVC3网站。 POST协议不起作用。 GET协议正在工作
我已经将它部署到我通过发布工具使用ftp方法从storminternet租用的共享服务器(storminternet尚不支持Web部署),并且它运行良好。它访问数据库好,并获得请求正常工作。
但是,任何通过POST协议提交的表单都会返回页面未找到的错误404(这是关于我已声明[HttpPost]的操作)。
风暴互联网向我保证,默认情况下允许POST和GET,并且由于帮助台不是开发人员,我不确定要转向谁。我对web.config没有很好的理解,尽管我可以阅读和理解xml,并通过阅读和搜索来了解发生了什么。我曾尝试将协议添加到根web.config中,并且我认为我可能会咆哮错误的树。
有没有其他人有这个问题,或者可能有人知道如何帮助我?
要复制我的错误,我的网站是在这里... 213.229.125.117/$sitepreview/ase-limited.com/Dev(抱歉,它不是蓝色,美元被解析到%的东西)
并且到POST请求的最快路径是单击左侧顶部的“添加构建”,然后单击对话框顶部的“保存”。
任何帮助将受到感谢。我一直坚持这几天没有运气。
问候 尼克
STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-STOP-PRESS-
它原来是一个sitepreview的已知问题。切换到适当的域对一切进行排序。
我注意到当你执行你的AJAX请求时你有一些404的javascript错误。例如你有一个请求:
http://213.229.125.117/$sitepreview/ase-limited.com/BuildingManager/Employees/2
代替:
http://213.229.125.117/$sitepreview/ase-limited.com/Dev/BuildingManager/Employees/2
注意如何/Dev
丢失。这是因为在你的javascript中,你已经硬编码了你的url,而不是使用url助手来生成它们。例如,你写了这样的事情:
$.ajax({
url: '/BuildingManager/Employees/2',
....
});
其在本地主机上正常工作,因为你没有一个虚拟目录名,但是当你部署你的服务器上,因为现在正确的路径是行不通:
$.ajax({
url: '/Dev/BuildingManager/Employees/2',
....
});
因此,您应该绝对不要硬编码这样的网址。
而当我尝试POST表单试图张贴到http://213.229.125.117/Dev/BuildingManager/SaveBuilding这似乎是一个非常古怪的网址,因为它缺少整个开始。再一次:永远不要硬编码的网址。始终使用网址助手。
是的,我知道这个错误很难。我今天早上在@ Url.Content(“〜/ fghfg/hfdgh/fgh”)中包装了URL。我错过了那一个。你是如何得到http://213.229.125.117/Dev/BuildingManager/SaveBuilding?我收到http://213.229.125.117/$sitepreview/ase-limited.com/Dev/BuildingManager/SaveBuilding。我不知道它是否有帮助,但我使用Chrome浏览器 – 2012-03-15 15:56:59
我使用了FireFox。你是否设法解决这个问题? – 2012-03-15 15:57:58
不幸的不是。我在JavaScript中修复了这个URL,非常感谢。我会错过它!我的表单仍然没有发布,并且URL通过助手正确地形成。我也一直在使用FireFox。唯一的问题是它的运行速度稍慢,但我的笔记本电脑几乎不是机器的野兽。 – 2012-03-15 16:09:01
我点击链接时出现404错误。 – 2012-03-15 15:34:00
嗨达琳。是的,解析器将$符号更改为%代码。我不得不编辑链接。它复制+粘贴虽然。 – 2012-03-15 15:36:56