vue使用fetch.js发送post请求java后台无法获取参数值

问题:前台vue使用fetch.js发送post请求后,后台 request.getParameter()无法获取到参数值

思路:查阅后,原因为fetch中头文件Content-type这个Header为application/x-www-form-urlencoded导致request请求中的form data变成request payload

处理办法:后台controller中使用流接受数据后,在进行查询操作既可。

  • vue代码
  • /**
     * 获取行业大类
     */
    export const hangyebrief = industryId => fetch(‘/console/good/industry/findIndustry‘, {
      industryId: 2
    }, ‘POST‘);
    

    controller代码

  •     @RequestMapping("findIndustry")
        @ResponseBody
        public AjaxRes findIndustry( HttpServletRequest request,HttpServletResponse response){
            StringBuilder sb = new StringBuilder();
            try(BufferedReader reader = request.getReader();) {
                char[]buff = new char[1024];
                int len;
                while((len = reader.read(buff)) != -1) {
                    sb.append(buff,0, len);
                }
            }catch (IOException e) {
                e.printStackTrace();
            }
            String idString = sb.toString();
            String  industryId = idString.substring(idString.indexOf(":")+1,idString.indexOf("}"));
            AjaxRes aj = new AjaxRes();
            GoodIndustryVo goodIndustry  = new GoodIndustryVo();
            if (industryId != null && industryId != "") {
                goodIndustry.setIndustryId(Integer.parseInt(industryId));
            }
            List<GoodIndustryVo> goodIndustryList = goodIndustryService.find(goodIndustry);
            aj.setObj(goodIndustryList);
            return aj;
        }
    

      

      

原文地址:https://www.cnblogs.com/schon/p/9621073.html

时间: 2024-10-10 21:02:29

vue使用fetch.js发送post请求java后台无法获取参数值的相关文章

vue中采用axios发送post请求

这几天在使用vue中axios发送get请求的时候很顺手,但是在发送post请求的时候老是在成功的回调函数里边返回参数不存在,当时就纳闷了,经过查阅资料,终于得到了解决方案,在此做一总结: 首先我们在运用npm install axios的时候就会默认安装qs,因此我们就得将qs引入到axios中,然后需要再通过实例化一个新的axios,并且设置他的消息头为'content-type': 'application/x-www-form-urlencoded' 1 let qs = require

jmeter 发送http请求,并把获取到的请求的订单信息保存到文件中

有一个任务,需要频繁发送订单请求,并分析订单请求中有没有存在重复订单号,思路是用jmeter 发送http请求,使用正则表达式获取到订单号,并把订单号和线程号作为参数提供给java请求,在java请求中把订单号写到包括有线程号的命名文件中.完成出来的样子是这样的 步骤如下: 1.Jmeter 发送http请求 1) 新建HTTP信息头管理器 2) 新建HTTP请求 2,在下单过后返回部分信息如下:"msg":"下单成功","result":&qu

HTML5+js页面传值给Java后台的小技巧

页面传值小技巧 平常我们在做的web项目,一般一个HTML页面上会有好几个步骤,step_num①,step_num②,step_num③,一般先显示step_num①,根据跳转条件显示step_num②,step_num①隐藏,再跳转step_num③,step_num①,step_num②隐藏,step_num③显示. 思路: (js设置全局变量,哪里需要在哪里添加一个input标签,把值赋给一个input,然后再让input隐藏). 先说下我做的页面的结构,进入xxx.html页面,通过j

最新的vue没有dev-server.js文件,如何进行后台数据模拟?

参照:https://blog.csdn.net/qq_34645412/article/details/78833860 最新的vue里dev-server.js被替换成了webpack-dev-conf.js 在模拟后台数据的时候直接在webpack-dev-conf.js文件中修改 第一步,在const portfinder = require('portfinder')后添加 //第一步 const express = require('express') const app = exp

HttpUrlConnection发送url请求(后台springmvc)

1.HttpURLConnection发送url请求 public class JavaRequest { private static final String BASE_URL = "http://localhost:8080/dsdemo/"; public static String userToken = null; public static String problemName = null; public static String sendPost(String su

Ajax跨域请求--java后台回值

JSONP(JSON with Padding)是JSON的一种"使用模式",可用于解决主流浏览器的跨域数据访问的问题. js文档: form表单: java 后台接收和回值 页面: 提交留言成功将存储到数据库中 原文地址:https://www.cnblogs.com/cweijie/p/9210872.html

服务端发送xml请求java代码示例

/** * */ package com.autoyol.pay.cmb.core; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.SocketTimeoutException; import ja

原生JS发送Ajax请求

注意了,划重点了,这一题考不到算我输! 一.JS原生Ajax Ajax=异步Javascript+XML: ajax是一种数据请求的方式,不需要刷新整个页面.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新. ajax的核心技术当然是XMLHttpRequest对象: ajax请求过程:创建XMLHttpRequest对象.连接服务器.发送请求.接受相应数据. 废话少说上代码! p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0p

webpack + vue 向本地后端发送http请求跨域问题

一.问题描述 前端: webpack + vue + axios 后端: wamp + php 用webpack访问前端页面是需要一个端口的,后端服务器也是需要一个端口的,端口不同,在本地调试接口就出现问题. 二.解决方法(不使用jsonp) 1)安装   proxy-middleware  插件  npm install proxy-middleware --save-dev 2)将项目目录下 build 文件夹下 dev-sever.js 中的 proxyMiddleware 改名为 htt