jquery - 405 method not allowed 错误出现在开始时然后消失

标签 jquery spring tomcat spring-mvc

我正在开发具有提要和评论(例如状态和评论)的应用程序。 当我添加新提要时,它工作正常并且新提要被添加。当我开始在提要上添加评论时,我得到

“不允许使用 405 方法”。

但是当我刷新页面然后开始添加评论时,评论添加成功。 谁能告诉我为什么会这样。 我使用相同的 jquery/ajax 来添加提要和评论。

代码如下:

 $.ajax({
            type : "POST",
            url : loc,
            cache : false,
            data : message,
            crossDomain : true,
                dataType : "json",
    //      dataType : "jsonp",
            success : function(data) {
                alert("feed/comment added");                
                }
            }
        });

PS:我正在使用 Spring 和 Tomcat。我使用相同的功能来添加提要和评论。

最佳答案

当您访问该页面时,您的浏览器会向服务器发出 HTTP GET 请求。但是,当您请求添加评论时,您发送的是 HTTP POST 请求。似乎服务器配置为仅接受 GET(可能还有其他),但不接受 POST 请求。

你可以试试

$.ajax({
        type : "GET",
        url : loc,
        cache : false,
        data : message,
        crossDomain : true,
            dataType : "json",
//      dataType : "jsonp",
        success : function(data) {
            alert("feed/comment added");                
            }
        }
    });

或者,如果服务器是您的,只需将其配置为接受 POST 请求即可。

编辑: 进一步思考,可能还涉及更多的复杂性(基于它在页面刷新后起作用的事实)。可能正在发送类似 HTTP PUT(或 HTTP OPTIONS)请求的内容,因此导致了问题。理想情况下,您会查看服务器日志以找出导致问题的请求。

关于jquery - 405 method not allowed 错误出现在开始时然后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12511458/

相关文章:

javascript - 我对这个函数有问题 "Uncaught ReferenceError: sync is not defined at HTMLInputElement.onkeyup"

jquery - Bootstrap 和 formvalidation.io : display . help-block 在一行

javascript - jquery,将多个值附加到一个隐藏的输入

spring - 如何仅使用注释使用 Spring 配置 Jersey

java - Tomcat 服务器在停止并重新启动后不再工作

javascript - 使用chrome扩展在knockout js页面上触发(表单)更改事件

java - Hibernate 是否会在死锁时自动重启事务?

java - Head First servlet 示例不起作用

tomcat - Spring Roo + Vaadin 插件 : Running on Tomcat server

spring - 通过 Maven 将简单的 Spring Hibernate 实用程序项目部署到 Tomcat