javascript - HTTP 错误 405.0 - 不允许的方法 - 表单标记

标签 javascript html asp.net visual-studio-2015 iis-10

我有一个 ASP.NET Web 表单(MVC 也有同样的问题)项目,我试图用它来通过我添加的 HTML 表单来托管简单的 JavaScript 练习。

关于这个主题的类似问题没有让我找到解决方案。我猜我必须在 IIS 中为 HTML 页面添加一个特殊的处理程序?

<!DOCTYPE html>
<html>
<head>
    <title>To-Do List</title>
    <meta charset="utf-8" />
</head>
<body>
    <br />
    <form method="post" action="/test/tasks.html" id="theForm">
        <fieldset>
            <legend>
                Enter an item to be done.
            </legend>
            <div>
                <label for="task">Task</label>
            </div>
            <div>
                <input type="text" name="task" id="task" required="required" />
            </div>
            <input type="submit" value="Add it!" id="submit">
            <div id="output"></div>
        </fieldset>
    </form>
    <script src="Scripts/tasks.js"></script>
</body>
</html>

最佳答案

处理无处提交的表单(如您的表单)的标准方法就是不使用提交按钮(这几乎只是一个调用 form.submit() 的按钮)。注意事项:

  • 将按钮元素的“类型”设置为“按钮”(默认为“提交”)。
  • 不要使用onclick="foo()"。为了保持形式和功能之间的分离,请通过 addEventListener (或等效项)添加点击处理程序
  • 不要尝试修改 DOM,直到所有内容都加载完毕,此时它还不存在。
  • 使用 javascript DOM 方法创建 DOM 元素的效率与直觉相反,如果可以的话,只需添加额外的 HTML。

类似这样的事情:

<!DOCTYPE html>
<html>
<head><title>Foo</title></head>
<script type="text/javascript">
"use strict";

var javascript_DOM_methods_are_efficient = false;

function displayResult() {
    var results = document.getElementById('results');
    if (javascript_DOM_methods_are_efficient) {
        results.append(document.createTextNode("extraordinary"));
        results.append(document.createElement('br'));
    } else {
        results.innerHTML += "extraordinary<br />";
    }
}

function init() {
    document.getElementById("eric").addEventListener( "click", displayResult, false );
}

document.addEventListener( "DOMContentLoaded", init, false );
</script>
<body>
    <form name="form">
        <button type="button" id="eric">half a button</button>
    </form>
    <div id="results">
    </div>
</body>

关于javascript - HTTP 错误 405.0 - 不允许的方法 - 表单标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390490/

相关文章:

html - 为什么列表样式类型不起作用?没有显示任何内容

html - CSS Grid 布局高度和滚动条不能正常工作

android - 随着软键出现在 Android 设备上,我在 Android 中的网站的背景图片越来越小

asp.net - 为什么子文件夹作为 Web 应用程序会出现 ASP.NET MVC 配置错误,无法加载站点主类型

javascript - 在 Google Cloud Function 内调用 Promise 函数

javascript - 完成后 n 秒重复请求(Angular2 - http.get)

javascript - 获取 GoogleMaps 自动完成 HTML 输入建议的地址列表

asp.net - EFCore SQLite 连接字符串与asp.net 中的相对路径

c# - 使用 C# 将 ASP.NET 代码动态写入 .aspx 文件

javascript - 从 iframe 外部调用 javascript 函数