首页 > 其他分享 >网络请求异常问题

网络请求异常问题

时间:2024-03-20 11:32:24浏览次数:31  
标签:问题 请求 错误 上传 网络 blog 400 异常

该篇文章记录总结一下,我在做前后端分离项目开发的过程中,所遇到的有关网络请求异常的前后端交互问题。(前端使用的是axios异步请求、后端使用fastAPI接口)

一、段落上传部分

最初报的错误如下图:

      当时查阅了很多的资料,跟着网上所说的解答逐个排查错误,但是都还是没有解决。像127.0.0.1改成localhost,检查headers中的数据类型,data里面的数据要根据后端设置的数据类型来修改,添加响应头,检查跨域设置等等方法都有尝试过。

并且还将自己的请求地址换成了axios官方网站里的测试接口地址,是有返回内容的。

以下是当时查阅资料,总结的可能导致该网络请求错误的原因:

  1. 无法连接到服务器:可能因为服务器未启动、网络连接不稳定、DNS解析错误等;
  2. 跨域问题:如果请求跨域了,并且服务器没有正确配置CORS(跨资源共享),浏览器会阻止请求,导致网络问题;
  3. 代理配置问题;
  4. 创建HTTP时未指定协议请求(' http:// ' 'https:// ');
  5. 制定了不正确的URL、端口或路径;
  6. 请求格式不对;

查阅资料的过程中,还了解到了一些琐碎的知识点,虽然我没有解决问题,但是可能会有其他人的代码存在这种问题,就在此分享一下。

        前端向后端传输数据时,如果是get传输,直接传在url后;如果是post传输,则在请求体body中传输。在body中的数据格式又有两种,一种是 json 数据格式,另一种是 字符串。具体要用哪种格式取决于后端入参的格式
        如果后端接收json数据类型,post 的 headers 需要设置{'content-type': 'application/ison' },传给后端的数据就形如{'name':'edward’,'age':'25'}
如果后端接收的是(表单)字符串类型,post 的 headers 需设置{'content-type': 'application/x-www-form-urlencoded'},传输给后端的数据就形如'name=edward&age=25'

然后,我猜测可能是后端接口有些问题,与后端人员沟通协调,后端人员不断检查调错,然后前端控制台又报了其他错误。

可能出现错误的地方:

  1. 代理出现错误;
  2. 调用接口地址出错

检查了一下后端给的参数格式,传参应该放在url里,而我之前一直是放在了data里。

修改后:

至此,文本上传部分的网络请求问题就全部解决了。

二、文件上传部分

在项目中涉及到文件上传,使用的是ant-design的upload组件,当时也遇到了请求异常的问题。使用 Ant Design 的 Upload 组件时,可以通过 action 属性指定上传地址实现选择文件自动上传。

后端显示,第一次预检请求 200 OK(成功响应),但是正式请求却出现了400 的错误。

出现 400 错误(Bad Request)通常表示客户端发送了无效的请求到服务器,可能导致该网络请求错误的原因:

  1. 请求体格式问题:对于 POST 请求,通常需要在请求中包含有效的请求体(body)。如果请求体格式不正确或缺失,服务器可能会返回 400 错误。

  2. 参数传递问题:检查后端期望的参数传递方式。

  3. 数据验证失败:如果在后端应用中使用了数据验证(例如 Pydantic 模型),并且请求数据不符合验证规则,也可能导致 400 错误,检查请求数据是否符合后端预期的格式和规则。

尝试了很多解决办法,最后将' Content-type '注释掉,结果不报错了,成功解决了问题。

总结

在前后端交互过程中,其实还遇到了很多问题,像500 ( Internal Server Error )等错误,较轻易地解决了,而以上总结的网络请求错误困扰了我很久,希望能帮到其他遇到同样错误的人吧。

在项目开发中,我深刻体会到了,实际情况不同,需要具体分析问题,拆解问题,想到各种可能导致该问题的原因,逐个排查,尝试各种可以解决问题的办法。

当然也有antd Upload自定义上传的方式,可以参考该文章https://blog.csdn.net/weixin_48074431/article/details/136079529?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-136079529-blog-103070931.235%5Ev43%5Epc_blog_bottom_relevance_base9&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-136079529-blog-103070931.235%5Ev43%5Epc_blog_bottom_relevance_base9

最后,如果文章内容有什么问题,可以私聊我提出,感谢!

标签:问题,请求,错误,上传,网络,blog,400,异常
From: https://blog.csdn.net/weixin_61164359/article/details/136762925

相关文章

  • nvm 下载新的Node(V18.19.0)版本,查看npm的版本出现异常Error: Cannot find module '@npm
    异常: 之前下载18.17.1查看npm也有问题ERROR:npmv9.6.7isknownnottorunonNode.jsv18.17.1. 大概意思是npm的版本是 v9.6.7单不能运行在v18.17.1的node上,但是node官网显示v18.17.1版本的node是适配v9.6.7的npm。这就很矛盾 最后找到的解决方案是升级nvm的版本......
  • 在Linux中,如何配置负载均衡器以分配网络流量?
    在Linux中配置负载均衡器以分配网络流量是一个复杂但重要的任务,它涉及到多个组件和步骤。下面将详细介绍配置负载均衡器的一般过程:一、选择负载均衡软件首先,你需要选择一个负载均衡软件。在Linux中,常用的负载均衡软件有HAProxy、Nginx和LVS(LinuxVirtualServer)等。这些软件都可......
  • JAVASE各模块结构图:面向对象、常用类、多线程、异常、IO流、集合、网络编程
    ......
  • 网络通信基础
    网络通信基础一、网络编程[1]什么是网络编程网络编程的前提和基础是互联网,网络编程就是基于互联网编写代码网络编程是指通过编程语言在计算机之间建立通信的一种方式网络编程是在互联网上进行数据传输的关键组成部分,使计算机能够相互通信、交换信息和共享资源网络编程涉及......
  • Java学习笔记:异常处理
    目录Java学习笔记:异常处理什么是异常异常体系结构:Error、Exception自定义异常Java学习笔记:异常处理​ **2024/3/19**什么是异常异常体系结构:Error、Exception自定义异常......
  • 爬虫实战:从HTTP请求获取数据解析社区
    在过去的实践中,我们通常通过爬取HTML网页来解析并提取所需数据,然而这只是一种方法。另一种更为直接的方式是通过发送HTTP请求来获取数据。考虑到大多数常见服务商的数据都是通过HTTP接口封装的,因此我们今天的讨论主题是如何通过调用接口来获取所需数据。目前来看,大多数的http接口......
  • 蓝桥杯 2013 国 AC 网络寻路 第四届国赛 洛谷P8605
    [蓝桥杯2013国AC]网络寻路题目描述XXX国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包,为了安全起见,必须恰好被转发两次到达目的地。该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径。源地址和目标地......
  • Linux——网络通信
    一.引入Linux进程间通信包括多种机制,如管道、消息队列、信号、共享内存和信号量。这些机制都依赖于Linux内核提供的支持,用于实现不同进程之间的数据交换和同步。然而,这些通信方式在本地进程间通信中非常有用,但无法直接用于跨机器间的通信。二.网络通信在网络通信中,通信的......
  • 纵横山河万里,终集 Java的错误和异常
    本篇会加入个人的所谓‘鱼式疯言’❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言而是理解过并总结出来通俗易懂的大白话,小编会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的.......
  • 【SZU计算机网络实验】实现流式视频传输
    前言一百年没有更新博客了,都怪开学一堆杂活(x那就顺手把实验报告转到这边吧owo本实验为SZU原创实验,实验开发团队的老师和助教们都很有耐心。。大赞,环境没配好去群里问是秒回的相关资料:实验文档:计算机网络课程综合实验平台(snrc.site)一、实验介绍该实验主要实现了一......