[英]jQuery $.post method results in 405 (Not Allowed) error
我有一个使用Nginx服务的网站。 我用ap标签创建了一个非常简单的网页,以显示文件test.html的内容。 我有两个按钮,一个按钮使用$ .ajax进行GET请求,另一个按钮使用$ .post进行POST请求。
GET请求工作正常,文件test.html的内容显示在我的p标签中。 但是,当我尝试POST到同一文件时,控制台中出现错误:“无法加载资源:服务器响应状态为405(不允许)。” POST请求很简单,从W3Schools.com的例子右边线- https://www.w3schools.com/JQuery/jquery_ajax_get_post.asp 。 所以我感到困惑。
我试图阅读并理解405错误可能意味着什么。 大概意味着这URL不支持POST请求。 但是如何使它得到支持?
<p id="content-from-ajax"></p>
<button id="get-content-btn">Get Content</button>
<button id="post-something-btn">Post something</button>
<script type="text/javascript">
$("#get-content-btn").click(function() {
$.ajax({type: "GET",
url: "test.html",
success: function(result) {
$("#content-from-ajax").html(result);
alert("GET successful");
}
});
});
$("#post-something-btn").click(function(){
alert("GRRRR");
$.post("test.html",
{
name: "Donald Duck",
city: "Duckburg"
},
function(data, status){
alert("something worked");
});
});
</script>
对于POST请求以访问Web服务器上托管的资源,您将需要一个应用程序服务器。 示例包括PHP的Laravel,Java的Spring和JavaScript的Node。
许多应用程序服务器要求您明确指定特定端点可以接收的请求类型,这在学习新的Web应用程序框架时可能会造成混淆,因为GET请求通常是默认请求。
尽管POST请求必须由应用程序服务器处理,但并不一定要成为您的托管服务器。 因此,您可以通过POST请求访问公共API(取决于您使用的API和端点),而无需在应用程序服务器上托管站点。 因此,如果这个项目纯粹是教育性的,那么这是使用POST请求进行测试的最佳方法,而无需麻烦自己进行配置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.