在Visual Studio 2015中,我创建了一个新的ASP.NET空网站。我想试试this sample shopping cart。我添加了一个非常简单的index.html:
<!DOCTYPE html>
<html>
<head>
<title>Winery</title>
<meta charset="utf-8" />
<link rel="stylesheet" href="css/style.css" media="screen" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.shop.js"></script>
</head>
<body>
<div id="site">
<header id="masthead">
<h1>Winery <span class="tagline">Wines for web developers since 1999</h1>
</header>
<div id="content">
<div id="products">
<ul>
<li>
<div class="product-image">
<img src="images/wine1.jpg" alt="" />
</div>
<div class="product-description" data-name="Wine #1" data-price="5">
<h3 class="product-name">Wine #1</h3>
<p class="product-price">€ 5</p>
<form class="add-to-cart" action="cart.html" method="post">
<div>
<label for="qty-1">Quantity</label>
<input type="text" name="qty-1" id="qty-1" class="qty" value="1" />
</div>
<p><input type="submit" value="Add to cart" class="btn" /></p>
</form>
</div>
</li>
</ul>
</div>
</div>
</div>
</body>
</html>
当我点击按钮时,我收到此错误:
HTTP Error 405.0 - Method Not Allowed
The page you are looking for cannot be displayed because an invalid method (HTTP verb) is being used.
这应该是在cart.html页面中发布一个项目。 (我可以发布cart.html的代码,但我认为错误发生在该页面之前)如果我只是打开Windows资源管理器并找到index.html并在Chrome中手动打开并单击按钮-POST WORKS很好 - 但是因为它没有在VS2015(也不是我的Azure Web App服务)中。
当我在本地测试网站时,在VS中,该过程会显示“iisexpress.exe”。正在运行,所以我假设IIS Express是默认提供页面的。我对此项目的web.config是默认的,如下所示:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5.2" />
<httpRuntime targetFramework="4.5.2" />
</system.web>
</configuration>
在线查看我发现默认情况下可以禁用POST ..这是真的吗?!如果是这样,我认为很多人会遇到这个问题。我无法相信我很难找到这个看似简单问题的答案。
另外,正如我所提到的,我将其发布到AZURE Web App服务,所以我不认为IIS配置文件的任何本地更改会在我发布时改变任何内容。我想我需要更改web.config以使其在Azure中运行。
我已经查看了this post以及研究工作中的所有链接&#39;部分。没有。我看到了所有类似的问题&#39;在我打字的时候右边......他们似乎有关系,但没有解决方案适合我。
我很感激帮助。
答案 0 :(得分:0)
Welp,似乎我需要将文件扩展名更改为.aspx才能使POST正常工作。一旦我从.html更改为.aspx,那么帖子按预期工作。 (似乎错误消息可能具有SAID,因此我没有浪费数小时的时间来试图弄清楚为什么POST不起作用)