jq使用请求报405错误

前言:

最近在开发一个公司内部项目,因为是内部自己使用,而且需求方要求内存不能太大,所以就不考虑使用Vue或React。思前想后决定使用jq来开发。一来可以满足项目要求,二来还可以练练手,毕竟用久框架回把之前原生的都忘记了。

目的:

主要还是为了记录一下开发过程中遇到的一些bug,加深一下印象,也可以为以后遇到相同bug能快速找到解决方法。

Bug:使用post请求页面报405

报错如下:

在这里插入图片描述
碎碎念:一开始碰到这个错误的时候就以为是接口错误(其实不是接口问题,原因后面说),于是就在网上拼命找解决方法。类似与很多php原因啊、contentType啊、浏览器设置啊等等,我都试了一遍,折腾了几个小时还是不行。差点就把责任推给后端了(日常甩锅),感觉是不是这个后端不行啊,写个接口还这么多报错。这时才发现报错的不是接口,是这个html文件…天啊!这几年开发眼睛都花了!!

原因: 仔细一看,原来是 form 表单引起的问题。上 报错代码

 <div class="wrapper wrapper-content">
        <hr style="border: 1px solid #30519c;">
        <h4>安全</h4>
        <form id="mainForm" method="POST" class="form-horizontal">
            <div style="width:100%;line-height:1.5em;text-align: center;font-size:14px">
				******
            </div>
        </form>
        <hr style="border: 1px solid #30519c;">
    </div>

    <script>

        $("button").click(function () {
            var user = $('#user').val()
            var oldPwd = $('#oldPwd').val()
            var newPwd = $('#newPwd').val()
            var newPwdVerify = $('#newPwdVerify').val()
            var params = { user, oldPwd, newPwd, newPwdVerify }
            $.ajax({
                url: 'http://1**.0.0.1:***/system/******',
                type: 'POST',
                data: params,
                success: function () {
                    // console.log(data)
                },
            });
        });
    </script>

解决:form 标签去掉就可以了。具体为什么form表单不行目前还未找到原因,需后续继续研究。

Bug 总结:

归根到底还是对jq用的不够熟,还得多加练习。当然页面报405不一定是form表单引起的问题,也有可能是其它原因引起的,如果这种解决方法无法帮你解决问题,那同志仍需努力,不要放弃,加油!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
如果你在使用 jQuery 的 AJAX 发起 POST 请求时遇到了 CORS 错误,可以尝试以下几种方法来解决问题: 1. 在服务端添加 CORS 头信息 在服务端的响应头中添加以下信息: ``` Access-Control-Allow-Origin: * Access-Control-Allow-Methods: POST Access-Control-Allow-Headers: Content-Type ``` 其中,`Access-Control-Allow-Origin` 表示允许跨域的源,`*` 表示任意来源都可以跨域访问;`Access-Control-Allow-Methods` 表示允许跨域请求的方法,这里只需要设置 `POST` 即可;`Access-Control-Allow-Headers` 表示允许跨域请求携带的请求头,这里只需要设置 `Content-Type` 即可。 2. 使用 JSONP 如果服务端无法添加 CORS 头信息,可以考虑使用 JSONP 跨域请求。在 jQuery使用 JSONP 的方式如下: ```javascript $.ajax({ url: 'http://example.com/api', type: 'POST', dataType: 'jsonp', jsonp: 'callback', data: postData, success: function(data) { console.log(data); }, error: function(xhr, status, error) { console.log(error); } }); ``` 其中,`dataType` 设置为 `jsonp`,`jsonp` 设置为 `callback`,这样 jQuery 就会自动将 POST 请求转为 GET 请求,并在 URL 中添加一个 `callback` 参数,服务端返回的数据会被包裹在 `callback` 函数中,然后在客户端调用该函数即可。 3. 使用代理方式 如果以上两种方法都无法解决问题,可以考虑使用代理方式。在客户端发起请求时,先将请求发送到自己的服务器,然后由自己的服务器再发起请求到目标服务器,最后将目标服务器的响应返回给客户端。这样就不会遇到跨域问题了。 以上是一些解决 jq ajax CORS 错误 post 请求的方法,希望对你有所帮助。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

别来…无恙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值