我有一个小的文本审查网络应用程序我正在工作。每当.js位于自己的文件中,单击“审查文本”按钮时,我就会得到一个HTTP 405,但是如果我将js放在HTML中,fine.Not就会太确定原因了。
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document Censor</title>
<script src="/js/main.js"></script>
</head>
<body>
<h1>Text Censor</h1>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Rerum enim reiciendis recusandae aliquid delectus
consectetur nobis. Sunt exercitationem iure dolores provident obcaecati aliquam totam. Molestiae cumque ducimus
aliquid. Deserunt, provident.</p>
<form name="redacted" method="post" action="">
<textarea id="input" name="text" rows="10" cols="60">
</textarea>
<br />
<input id="formSub" type="submit" value="Censor Text" />
</form>
</body>
</html>联署材料:
var div = document.getElementById('formSub');
function censorWords(event) {
event.preventDefault();
var textContent = document.getElementById('input');
var redacted = ["boston", "red", "sox"];
console.log(textContent.value)
textContent.value = censored(textContent.value, redacted);
}
function censored(string, filters) {
console.log('in')
// "i" ignores case, "g" for global and "|" for OR match
var regexp = new RegExp(filters.join("|"), "gi");
return string.replace(regexp, function (match) {
//this is where the words are replaced with X
var censorship = '';
for (var i = 0; i < match.length; i++) {
censorship += 'x';
}
return censorship
})
}
div.addEventListener('click', censorWords)发布于 2022-06-28 11:58:58
我不确定,但我猜你需要把你的<script src=""/>移到身体的末端。
因为javascript是在HTML本身之前加载的。
<body>
-
-
-
-
-
<script src="/js/main.js"></script>
</body>发布于 2022-06-28 12:00:22
显示错误405 (method not allowed)是因为表单被提交并使用post方法,但是web服务器不允许向简单的html文件投递。
提交按钮提交表单,因为事件侦听器没有正确地链接到censorWords函数。
首先,如果只需要触发一些JavaScript来执行,则不需要表单,也不需要类型为submit的按钮。删除表单并制作type=button按钮。
其次,在javascript代码试图访问文档的部分之前,您应该确保文档已经完全加载。有关如何实现该目标的几种方法,请参见$(document).ready equivalent without jQuery。要么等待完整加载docment,然后执行代码来连接其他事件。或者使用script标记上的script属性将外部代码的执行推迟到文档完全加载。
发布于 2022-06-28 12:01:14
405错误均值方法不允许
您的JS代码没有发出任何http请求,所以我猜当您将JS放在单独的文件中时,它实际上根本没有运行,所以当您按下按钮时,它只是提交表单。
当JS位于单独的文件中时,仍然需要一个元素将JS文件包含在html文件中。
https://stackoverflow.com/questions/72785910
复制相似问题