Javascript 405表单提交时出错,即使使用POST请求

Javascript 405表单提交时出错,即使使用POST请求,javascript,ajax,Javascript,Ajax,我正在使用AJAX调用将JSON格式的表单数据提交给第三方服务器,但我收到了一个405错误(不允许使用此方法)。你能帮忙吗 我的表单如下所示: <form name="freeTrial" id="testForm" role="form" > ------------ <input type="submit" class="btn" value="Submit" id="submitButton"/> </form> 您的代码实际上是在尝试发出跨域(COR

我正在使用AJAX调用将JSON格式的表单数据提交给第三方服务器,但我收到了一个405错误(不允许使用此方法)。你能帮忙吗

我的表单如下所示:

<form name="freeTrial" id="testForm" role="form" >
------------
<input type="submit" class="btn" value="Submit" id="submitButton"/>
</form>

您的代码实际上是在尝试发出跨域(CORS)请求,而不是普通的帖子。现代浏览器只允许Ajax调用与HTML页面位于同一域中的服务

如何解决它?

最简单的方法是在服务器上启用CORS(启用必要的头)


如果您没有服务器端访问权限,您可以从其他地方镜像web服务,然后在那里启用CORS。

您不能将
jsonp
与POST一起使用,它就是不起作用。 如果此链接指向您从中调用的同一应用程序,请使用json数据类型

否则,您必须在目标服务器上启用(通过应用特定的HERD)跨域请求。这只能在
https://myServerURl
服务器。您可以简单地使用
json
数据类型,而不是
jsonp

相关职位:

但这个错误告诉了您需要知道的一切。您是否已在控制器请求映射/帐户中定义POST请求?您可以调试一下,在提交按钮单击时调用什么URL吗?其次,您应该在表单提交时添加此事件,而不是在按钮单击时。jsonp不支持POST(因为它是通过使用
脚本
标记发出GET请求来实现的)-你的意思是
数据类型:'json'
?@Sean:CORS请求需要jsonp,同一个域需要json。也许这些链接会有帮助,我们必须将数据发布到第三方服务器…使用jsonp进行跨域请求..不知道post在这里不起作用..thnx。。我明白了。。实际上,这是我们发布到的第三方服务器url。必须在服务器上启用它。。。
$(document).ready(function(){
    alert("page load");
    $("#submitButton").click(function(e){
        e.preventDefault()
        alert("inside function");
        var MyForm = $("#testForm").serializeJSON();
        alert("MyForm "+JSON.stringify(MyForm));
        jQuery.ajax({
            url : "https://myServerURl/accounts",
            type: 'POST',
            dataType: 'jsonp',
            data : MyForm,
            success:function(data){
                alert(data);
            },
            error: function(jqXHR, textStatus, errorThrown){
                console.log("failure");
                alert("failure");
            }
        });
    });
});