>
AJAX请求发送415或者400错误已解决
2021-12-12 17:48
前端
  • 2363
  • 527
  • 64
  • 51

AJAX 是开发者的梦想,因为您能够:

  • 不刷新页面更新网页

  • 在页面加载后从服务器请求数据

  • 在页面加载后从服务器接收数据

  • 在后台向服务器发送数据

当我们使用AJAX向后端发送请求时 发生了错误!

image.png

这个415的错误是怎么发生的呢?

这个我们就需要去了解下AJAX中的contentType(内容类型)

常见contentType

        application/x-www-form-urlencoded

        multipart/form-data

        application/json

        application/xml 和 text/xml

这个我们就需要和后端的参数类型对应

如果不对应后端的类型那么就会报错415

现在我们来修改一下与后端一致

代码如下:

   contentType: "application/json",

接下来又报错啦 却是400

image.png

这个是什么情况发生的呢?

这个就是参数传输的问题啦!

看看我们的参数是怎么传输的呢?

      data : {"demo" : "","demo" : "","demo" : ""},

看出这个参数这样传输有问题吗?

由于我们上面的类型是application/json

那么我们传给后端的参数需要json序列化一下后端才能接收到。

应该如何做json序列话呢就需要用到 JSON.stringify(数据内容)

这样修改以后 就可以正常调用接口啦!

完整代码如下:

$.ajax({
       type: "POST",//请求方式get、post
                contentType: "application/json",
                dataType:'json',//json 返回值类型
                //async:false,
                url: "url",//服务器请求地址
                data: JSON.stringify(json),
                //data: json,
                success: function (data) {
                    alert(data);
                },
                error: function (xhr, textStatus, errorThrown) {
                    /*错误信息处理*/
                    alert("进入error---");
                    alert("状态码:" + xhr.status);
                    alert("状态:" + xhr.readyState);//当前状态,0-未初始化,1-正在载入,2-已经载入,3-数据进行交互,4-完成。
                    alert("错误信息:" + xhr.statusText);
                    alert("返回响应信息:" + xhr.responseText);//这里是详细的信息
                    alert("请求状态:" + textStatus);
                    alert(errorThrown);
                    alert("请求失败");
                }
            });


全部留言 ()
返回
顶部