当前位置: 首页 > 知识库问答 >
问题:

jQuery. ajax()POST请求抛出405(方法不允许),但GET不允许

苏高峰
2023-03-14

我正在使用ajax进行表单更新。当我在ajax中使用GET方法时,它工作得很好,但当我使用Post方法时,它抛出了错误405 method,这是不允许的。我正在本地主机上测试这个。我以前在localhost中做过,效果很好。顺便说一句,我用的是Laravel5.2。

这是我的ajax代码。

$('#update-modal').on('click',function(){

$.ajax({

    method : "POST",
    url : updateURL,
    data : { client_id : $('#client_id').val(),
             client_name : $('#client_name').val(),
             client_business : $('#client_business').val(),
             client_ref : $('#client_ref').val(),
             gmail_mail : $('#gmail_mail').val(),
             gmail_pass : $('#gmail_pass').val(),
             client_dob : $('#client_dob').val(),
             client_addr : $('#client_addr').val(),
             client_no1 : $('#client_no1').val(),
             client_no2 : $('#client_no2').val(),
             domain_name : $('#domain_name').val(),
             domain_p_date : $('#domain_p_date').val(),
             domain_reg : $('#domain_reg').val(),
             domain_ex_date : $('#domain_ex_date').val(),
             domain_acc_email : $('#domain_acc_email').val(),
             domain_acc_pass :  $('#domain_acc_pass').val()},
             _token : token 

})
.done(function(msg){

    console.log(msg['message']);

});
});

这是我在视图中使用的脚本

        <script>
        var updateURL = '{{ route('updateDomain') }}';
        var token = '{{Session::token()}}';
        </script>

这是我的路线

Route::post('/updateDomainModal' ,function(\Illuminate\Http\Request $request){      
    return response()->json(['message'=> $request['client_name']]);
})->name('updateDomain');

当ajax函数和路由中的方法更改为GET时,它会打印在控制台中传递的客户机名称,但当对POST方法执行相同操作时,它会抛出错误,这是错误详细信息

jquery.min.js:2 GET http://localhost:8000/updateDomainModal?client_id=4&client_name=ABCD&client…2+15%3A01%3A40&domain_acc_email=abc123%40gmail.com&domain_acc_pass=123456 405 (Method Not Allowed)

共有2个答案

俞俊逸
2023-03-14

使用类型“POST”

$.ajax({

      type : 'POST',
      url : updateURL,
      data : { client_id : $('#client_id').val(),
               client_name : $('#client_name').val(),
               client_business : $('#client_business').val(),
               client_ref : $('#client_ref').val(),
               gmail_mail : $('#gmail_mail').val(),
               gmail_pass : $('#gmail_pass').val(),
               client_dob : $('#client_dob').val(),
               client_addr : $('#client_addr').val(),
               client_no1 : $('#client_no1').val(),
               client_no2 : $('#client_no2').val(),
               domain_name : $('#domain_name').val(),
               domain_p_date : $('#domain_p_date').val(),
               domain_reg : $('#domain_reg').val(),
               domain_ex_date : $('#domain_ex_date').val(),
               domain_acc_email : $('#domain_acc_email').val(),
               domain_acc_pass :  $('#domain_acc_pass').val()},
               _token : token 

    });

如果你提交表格

$("#form-name" ).submit(function(ev) {
  ev.preventDefault();  
  var postData = $(this).serializeArray();
  var formURL = $(this).attr("action");
  $.ajax({
    url: formURL,       
    type: 'POST',
    data: postData, 
    success: function(data, textStatus, jqXHR)
    {   
      location.reload();    
    },
    error: function(jqXHR, textStatus, errorThrown)
    {   
      consonle.log("error");
    }
  });
});
籍兴文
2023-03-14

您在以domain_acc_pass开头的行中错误地使用了}。您应该在分配令牌值后使用该“}”。现在,令牌不会发送到目标,这是必需的。

 类似资料:
  • 我有一个非常简单的Spring引导应用程序,它由以下代码保护: 这个想法是为了保护“admin”部分。它公开了一个RESTAPI。问题是所有的帖子都被退回了 405方法不允许 如果我从应用程序中删除安全启动器,它就会工作。这让我相信安全配置是问题所在。但我不知道怎么做。

  • 我得到了405请求方法'GET'在app engine的文件上传过程中不受支持,但在我的本地沙箱中相同的代码运行正常 看起来像bbloservice回调请求应该是POST类型后POST/_ah/上载/...但是当我用Firebug看的时候,它是一个带有以下头的GET请求,我确实在@Controller类中定义了请求处理程序,该类具有方法类型请求方法。POST 标题 响应Headersview源允许

  • 我正在尝试使用AJAX POST将我在第三方JS函数(支付网关)的回调函数中得到的响应保存到我的服务器,但我得到的状态代码为-405方法不允许。我得到的响应是-消息:请求方法'POST'不受支持,描述:所请求的资源不允许指定的HTTP方法。 我有以下Javascript客户端代码- 相应的服务器端Spring MVC处理程序- 关于“405方法不允许”的StackOverflow的大多数答案都导致

  • 我有一个restcontroller和post方法,带有以下url和json请求。http://server/member/sc/v1/limited-liability/medicare 使用post方法和json请求在本地触发请求时,获得正确的响应。但在docker中以spring boot应用程序的形式运行会将异常作为不允许的方法抛出。最初,我将这个docker服务部署为put方法。现在我转

  • 该代码在我的本地开发环境中运行良好,但在我将其上载到服务器时,给出了一个异常。这个问题和这个问题的解决方案对我不起作用。 这是控制器。 这是routes文件中的相应条目。 这里是对URL的AJAX调用。 这就是示例测试用例的数据。 我如何克服这个错误,为什么这只发生在生产中? 值得注意的是,我在整个应用程序中还有其他对路由的AJAX调用,它们工作得很好。

  • 我正在使用spring mvc设置一个rest api,并且大多数配置都是通过spring boot项目自动设置的。在前端,我使用angularjs及其$HTTP模块向服务器发出获取资源的ajax请求。资源URL在my controller类中定义,但仅匹配GET URL。我试过PUT和POST,但它们分别返回405方法不允许和403禁止. 我的控制器看起来像这样 而对与url不匹配的服务器的请求