Javascript 405表单提交时出错,即使使用POST请求
我正在使用AJAX调用将JSON格式的表单数据提交给第三方服务器,但我收到了一个405错误(不允许使用此方法)。你能帮忙吗 我的表单如下所示: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
<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");
}
});
});
});