相关文章推荐
腼腆的烈马  ·  android studio ...·  1 年前    · 
想发财的黄瓜  ·  Selenium build ...·  1 年前    · 

前后端分离,跟同事联调接口,后台定义的接口是 application/json 方式请求,参数为数组,却没有key,如图所示

我第一反应是如果要传递JSON对象,至少要告诉我 JSON的 key 值是什么吧,不然后台怎么接收我的参数呢?前端怎么传递JSON呢?毕竟数组也不是JSON对象( 后面才知道这句话是错的 )。

二、解决过程

2.1 尝试着用后台提供的swagger发送请求,看看是否成功?

2.2 尝试着用postman 发送请求,看看如何传递参数?

三、使用axios 传递参数

因为前面使用 postman swagger 请求都没有问题,说明后台逻辑没有问题,理论上 ajax 也是能够发送的数据给后台的,只是自己不知道

3.1 参考 axios gihub 中的案例

3.2 给出案例的的答案

  1. 在Vue文件中调用 服务
// 删除模态框
delMessageDialog (msgObj) {
    this.$confirm('此操作将删除模板, 是否继续?', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        onConfirm: () => {
            const params = [msgObj.id]
            API.delMsgTemplateService(params).then(res => {
                if (res.msg === 'success') {
                    this.$message({
                        type: 'success',
                        message: '删除模板成功!'
                    this.getTableData()
        onCancel: () => {
            // this.$message({
            //   type: 'success',
            //   message: '已取消删除!'
            // })
  1. 在axios 中定义传递 数组 的方式
// 删除模板
function delMsgTemplateService (params) {
  const userParam = params || []
  // http 为 axios 实例(对象)
  return http({
    headers: {
      'content-type': 'application/json'
    method: 'post',
    url: `/${ctx}/api/msg/msgTemplate/delete`,
    // 将数组转为字符串
    data: JSON.stringify(userParam)
                    文章目录一、问题描述二、解决过程2.1 尝试着用后台提供的swagger发送请求,看看是否成功?2.2 尝试着用postman 发送请求,看看如何传递参数?三、使用axios 传递参数3.1 参考[axios gihub](https://github.com/axios/axios) 中的案例3.2 给出案例的的答案一、问题描述前后端分离,跟同事联调接口,后台定义的接口是application/json方式请求,参数为数组,却没有key,如图所示我第一反应是如果要传递JSON对象,至少要告诉我 J
				
文章目录问题描述jquery 正常的请求逻辑axios 请求'Content-Type': 'application/json' 请求'Content-Type': 'application/x-www-form-urlencoded' 请求 今天跟后台调试接口,发现一个很奇怪的问题,使用jquery就可以访问后台的服务,但是使用axios就不行,说传递参数有误,并且返回400和跨域错误 jquery 正常的请求逻辑 下面代码是使用jquery 正常发送的请求 $.ajax({ 答:前端在请求接口(api)服务时,需要将api所需要的参数传递给后端,那么使用何种方式传参给api,就是由请求类型定义的,请求类型就是一个规范,这个规范由后端同事在写接口时定义好的,所以前端需要请求接口时,需要保持请求类型和传参的格式与后端接口定义的一致,否则请求接口不成功! 在vue项目中使用axios请求登陆api接口时,请求返回状态码401?当时第一时间以为是token失效?想着不对劲,感觉
通常前端通过POST请求向服务器端提交数据格式有4中,分别是"application/x-www-form-urlencoded"格式、" multipart/form-data"格式、"application/json"格式 和"text/xml"格式。通常最常见的是"application/json"格式,也就是通过JSON字符串形式。 在控制台看到的数据就是这样: 有的时候后台需...
首先要明确的一点是,我们在项目中调用接口,通常是以对象的数据格式传给自己封装的http请求函数的。 1,application/json 现在的前后端分离项目基本上都是使用的这个进行数据传递axios默认Content-type是采用application/json;charset=UTF-8,无需设置直接把对象传进去即可 当然,也可以在请求拦截器中转化成json后再发请求(但是不能用qs.stringify): config.data = JSON.stringify( Content-Type: application/json : 请求体中的数据会以json字符串的形式发送到后端 Content-Type: application/x-www-form-urlencoded:请求体中的数据会以普通表单形式(键值对)发送到后端 Content-Type: multipart/form-data: 它会将请求体的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。 2.appl 看这两个注解的作用 @RequestParam 是作用在形参列表上,RequestParam可以接受简单类型的属性,也可以接受对象类型。在前端传入的是json字符串,后台按字符串string参数接收再解析。 请求头contentType设置为application/x-www-form-urlencoded;charset=utf-8。 后台接收请求的方法的参数可以用String类型 @RequestBody 是作用在形参列表上,用于将前台发送过来固定格式的数据【xml 格式或
前言: vue中在与后端进行数据交互时,使用axios发送请求,不做配置直接使用get请求传递数组类型参数的时候,后端是无法接收数据的,需要对axios一些简单的配置才能让后端完美的接收数组 let params = { statusList: ['OVERDUE', 'DELAY'] this.$http.get('/list', params) .then(res => {}) .catch(e => {}) 上述代码在不做配置的时候请求信息为:/list?statusList[]=OVERDUE&stat
在vue-cli3中,公共文件夹由static变成了public 先把要访问的json放到public文件夹下 使用axios的get方法获取,不能用post,不然会报404 axios.get(`./china-main-city/100000.json`) .then((data) => { console.log(data) 补充知识:两个不同的路由,引入相同的组件 从不同的按钮进入到详情页,两个不同的路由,相同的组件 主要是从不同按钮进入不同路由的页面,内容一致,但是title不一样,怎么写 index.js const busines
前端传参参数各种格式详解一、form-data二、application/x-www-form-urlencoded总结 一、form-data form-data格式一般是用来进行文件上传 调用接口的时候参数data等于formData const formData = new FormData(); formData.append('modelName', code); 二、application/x-www-form-urlencoded 表单的传参格式,常见的post传参格式 data等于一个对象
chrome浏览器不支持webgl(webgl context must not be null, please enable webgl in your browser settings!) 小楼窗外的细雨: 解决是解决了,不报错了。但是,选了这个 Choose ANGLE graphics backend 为"OpenGL",模型渲染很卡。 express 处理代理请求(express-http-proxy) m0_51273292: It's working thanks so much![code=javascript] // 转发主产品的模块 // 从系统环境变量中获取TOKEN const token = process.env.TOKEN as string; // /main/xxx转发到https://api.talesofai.cn/xxx,然后带有一个请求头x-token,要求转发的请求头也带有x-token,要支持GET/POST/PUT/DELETE import * as proxy from "express-http-proxy"; app.use( "/main", loginCheck, proxy("https:/bugaosuni.com/", { proxyReqPathResolver: (req) => { const newPath = req.originalUrl.replace("/main", ""); return newPath; proxyReqOptDecorator: (options, req) => { options.headers = options.headers || {}; options.headers["token"] = token; return options; userResHeaderDecorator: (headers, userReq, userRes, proxyReq, proxyRes) => { headers["token"] = token; return headers; [/code] vue2.x之vuex module模块学习笔记(二) CSDN-Ada助手: 你要暗自努力然后惊艳所有人。