Visual Studio 2015中的简单网页中不允许HTTP POST(405.0错误)

时间:2017-06-03 15:47:41

标签: asp.net iis visual-studio-2015 http-post iis-express

在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">&euro; 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;在我打字的时候右边......他们似乎有关系,但没有解决方案适合我。

我很感激帮助。

1 个答案:

答案 0 :(得分:0)

Welp,似乎我需要将文件扩展名更改为.aspx才能使POST正常工作。一旦我从.html更改为.aspx,那么帖子按预期工作。 (似乎错误消息可能具有SAID,因此我没有浪费数小时的时间来试图弄清楚为什么POST不起作用)