精华内容
下载资源
问答
  • 微信小程序ajax请求后台拿数据

    千次阅读 2018-06-19 17:46:02
    微信小程序wx.request接口请求后台拿数据function request(postData,doSuccess,doFail,doComplete){ var host="https://ygj365.tunnel.2bdata.com/app"; var api=host+postData.cmd_type; console....

    微信小程序wx.request接口请求后台拿不到数据

    function request(postData,doSuccess,doFail,doComplete){
       var host="https://ygj365.tunnel.2bdata.com/app";
       var api=host+postData.cmd_type;
       console.info("请求"+ api);
       wx.request({
        url: api,
        header:{
          "Content-Type":"application/json"  //微信默认的      把此处改成:'content-type': 'application/x-www-form-urlencoded'即可
        },
        data:{"cmd":JSON.stringify(postData)},
        method: 'POST',
        success: function(res){
         if(typeof doSuccess == "function"){
           doSuccess(res);
         }
        },
        fail: function() {
         if(typeof doFail == "function"){
           doFail();
         }
        },
        complete: function() {
         if(typeof doComplete == "function"){
           doComplete();
         }
        }
       });
     }
    module.exports.request =request;

    这是jquery 的请求


    这是微信小程序的请求


    此答案找到的方法是:发现原来自己后台用jquery调用的时候是可以拿到的,可是在小程序中却没有拿到,

    所以调式看了最终的请求数据,发现有以上区别,所以尝试着改了,尽然成功拿到数据了

    展开全文
  • 解决如题所示问题:微信小程序提交post请求后台拿数据。 2. 解决方法 只需要在wx.request中添加如下属性即可: header: { "Content-Type": "application/x-www-form-urlencoded" }, 总的...

    1. 编写目的

    解决如题所示问题:微信小程序提交post请求后台拿不到数据。

    2. 解决方法

    只需要在wx.request中添加如下属性即可:

       header: { "Content-Type": "application/x-www-form-urlencoded" },      
    

    总的代码如下:

        wx.request({
          method: "POST",
          // 一定要添加下面这行才可以
          header: { "Content-Type": "application/x-www-form-urlencoded" },      
          url: 'http://127.0.0.1/diary/add',
          data: {
            content: ,
            mood: mood,
            weather: weather,
            userid: user,
            session_key: session 
          }
        });
    

    3. 总结

    这是个坑!

    Smileyan 2019年3月2日

    展开全文
  • 我在前端构建了一个数组(以”str[]”为例),作为ajax请求参数到后台。 一般而言,我们在F12中可以看到这个请求,并且之前的请求参数(str[])应该可以折叠展开,观察它的 每一个下标以及对应的值。 (这里只是...

    相信一般的Spring MVC前后端数据传输与解析,大家都有一定的经验了,这里主要说一个特殊场景。
    后台拿不到前端请求的数组的一种情况。

    一般场景

    我在前端构建了一个数组(以”str[]”为例),作为ajax请求参数到后台。
    一般而言,我们在F12中可以看到这个请求,并且之前的请求参数(str[])应该可以折叠展开,观察到它的
    每一个下标以及对应的值。

    这里写图片描述

    这里写图片描述
    (这里只是找到一个类似的数据例子,大家把list命名看成contact,以及里面的成员变量为nameaddressisUsual

    如上图,一般情况如上所示,而我们在后台java bean会有一个String[] str或者List<String> strList成员变量。

    这里写图片描述(这里还是以上面contact为例)

    经过上面前端构造请求,到后台Spring解析绑定参数,拿到这个list数组,然后我们就可以进行后续的业务逻辑编写了。


    特殊场景

    有的时候在前端我们不一定是拿已有的数组作为参数,我们需要自己构造一些特定的数组给后台。

    var contact = []; //我们建议用中括号[]构造数组,而不是new Array(),具体原由大家可以自行百度,这里不再赘述。

    这样构造得到一个数组后,作为参数传递到后台,此时请求参数是什么样子呢?让我们F12看一看。

    这里写图片描述(这里偷懒成员变量只构造1个数值了: P)

    我们可以看到此时的数组参数,后面带有一个[],然后并没有我们想象中的下标0,例如我们可能希望它应该是contact[0]:1这样的。
    而出现上述场景后,后台使用List<String> strList成员变量时,将会拿不到数组而报空指针异常Nullpointexception
    如过使用String[] str成员变量,则会报NumberFormatException ,如下图:

    这里写图片描述

    显然,我们可以看到Spring在解析绑定这个数组数据时,拿不到数组下标,也就无法遍历获取数据值进行参数绑定了。


    场景已重现,下面是解决方案,依然视场景而定:

    1、 form表单请求,手动拼接数组

    <form>
        <input name="contact[0].name" value="1">
        <input name="contact[1].name" value="2">
    </form>

    这样拼接而成的数据,如上面一般场景中提到的格式类似,后台可以正常解析。

    2、Ajax Json格式传输参数

    如果使用ajax请求构造参数,那么使用JSON.stringify(data)对参数进行Json格式化,则请求参数变为下图的样子:

    这里写图片描述

    这里JSON.stringify(data)对数组格式化重新封装时自动分配了下标,所以此时的数据来到后台,我们就可以正常解析绑定了。

    展开全文
  • 1.学习Ajax请求参数传递过程中,本地搭建了... //服务器拿到客户端的请求参数,再响应给客户端 res.send(req.body) }); 一般项目中路由与入口文件是单独分离开的(这里为了单纯的学习); 2.index.html <form...

    1.学习Ajax请求参数传递过程中,本地搭建了一台node服务器,在app.js中创建客户端请求路由为:

    app.post('/post',(req,res)=>{
        //服务器拿到客户端的请求参数,再响应给客户端
        res.send(req.body)
    });

    一般项目中路由与入口文件是单独分离开的(这里为了单纯的学习);

    2.index.html

    <form action="">
            <label for="username"></label><input type="text" id="username">
            <label for="age"></label><input type="text" id="age">
            <input type="button" value="提交" id="btn">
        </form>
        <script>
            var btn = document.getElementById('btn');
            var username = document.getElementById('username');
            var age = document.getElementById('age');
            btn.onclick = function(){
                var xhr = new XMLHttpRequest();
                var nameValue = username.value;
                var ageValue = age.value;
                // let params = `username=${nameValue}&age=${ageValue}`;
                var params = 'username='+nameValue+'&age='+ageValue;
                xhr.open('post','http://localhost:8888/post');
                xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                xhr.send(params);
                xhr.onload = function(){
                    // console.log(123)
                    console.log(xhr.responseText);
                }
            }
        </script>

    post请求需要设置请求头:

    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

    3.然后,console.log(xhr.responseText);   但是打印一直为空(这里没有报错,也不是null,控制台的status也为200,说明请求没问题)

    4.找了很久的原因,不是网上说的open的第三个参数为false或true的问题,也不是代码编写错误的问题,最后发现,app.js文件里我只设置了body-parser这个处理request的body的中间件

    【const bodyParser = require('body-parser')】

    但是没有配置具体的格式;

    添加配置为:【app.use(bodyParser.urlencoded())】,就代表我要解析“ application/x-www-form-urlencoded ”这种格式的参数,如果要解析“ application/json ”这种格式的参数,则需要再app.js文件中设置:【app.use(bodyParser.json())】

    4.附上最后的测试截图

    标题

     

    展开全文
  • vue请求后台后台通过 request.getParameter("username")得到的值为null, 是因为vue框架导致的 需要使用以下方式来获取请求参数可以解决   通过 @RequestBody 注解,springmvc 可以把json中的...
  • 这是页面效果,可以看到请求发送成功了,也能拿到前端页面发送过来的值。 但是,后台打印req.body的打印的值为空 然后我看了很久文档,最终发现,只需要用json解析一下就好了,可能还是自己学的不扎实吧. app.use...
  • 微信小程序POST请求后台获取不到请求的参数

    万次阅读 热门讨论 2018-05-15 14:50:07
    这是我一开始写的请求的demo wx.request({ url: 'http://192.168.1.123/StudentManage/jsdemo.php', method:'post', data: { username: 'yaodan', password: '123456' }, head...
  • angularjs的http请求后台收不数据

    千次阅读 2016-10-24 17:56:36
    angularjs的http请求默认请求下发送的是josn数据,所以PHP直接用$_POST请求是接收不数据的,如下图: 后台返回数据为空: 我们要做的事情,就是把json数据,变成表单形式的数据,这样PHP可以直接通过$_POST...
  • 我用一个post请求到url传递参数,url接收参数多了个= ![图片说明](https://img-ask.csdn.net/upload/201812/23/1545578357_972036.png) ![图片说明]...
  • 在<script></script>里增加以下代码 ... transformRequest: [function (data) { // Do whatever you want to transform the data ... for (let it in data) { ...备注 :其实就是把请求的数据格式化
  • 当你这个时候到后台Servlet返回值的时候, 应该是你后台代码没有用response.getWriter().write();返回值, 友情提示:不能使用return直接返回。 为了想变得更好而 写博客。  ------在路上。
  • 一.简介 最近再学一些关于微信公众号网页开发的东西,这里...1.从后台拿数据,同步地渲染页面上。 ①首先是配置API请求 userAlways: function (param) { return axios({ url: 'url地址', method: 'get', ...
  • AJax 把拿到后台数据在页面中渲染

    万次阅读 2017-11-02 15:28:34
    AJax 把拿到后台数据在页面中渲染
  • 1:从接口处拿到token 以此接口为例子 this.$http.post(&amp;quot;/api/account/login/&amp;quot;, { account: this.moblie, password: this.password, captcha_image: this.icodenum }) .then...
  • 前端代码如下 后端代码如下: import os import sys from flask import Flask, request, jsonify, make_response, abort, json, send_from_directory from flask_cors import * import json app = Flask(__name__)...
  • (function(window) { var data1; })(window); function getuplines1() { return data1; } (function() { $.ajax({ url: '... async: false, // 同步请求 type:...
  • 微信小程序request请求后台接收不参数问题一. 小程序部分代码二. 后端三. 问题代码四. 请求头 一. 小程序部分代码 发一个普通的request请求 wx.request({ url: app.globalData.server_prefix + '/api/v1.0/...
  • 关于post请求后台如何获取请求体的数据的问题总结
  • 发起网络请求。 在各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。 OBJECT 参数说明 参数名 类型 必填 默认值 说明 平台差异说明 url String 是 开发者服务器接口地址 data Object/String/...
  • 上滑加载,ajax请求后台,获取数据,然后加载页面,完完整整,来即用
  • ssh后台开发之接收请求数据

    千次阅读 2017-04-20 23:12:13
    ssh搭建后台之接收请求数据
  • Spring MVC后台接收不POST请求的参数

    万次阅读 多人点赞 2016-06-22 16:20:17
    使用jQuery从前端向后台发送JSON数据,设置了Content-Type为application/json,同时在Spring MVC的Controller里面使用了@RequestParam注解来接收参数,但是只在GET请求的时候才能正常访问,在使用POST请求的时候会...
  • 在前端将密码修改成功后,后端返回的是200的状态码,但是,请求成功应该进入 .then里面,将修改成功的消息弹出的,但是始终没有 经过多番资料的查阅,原因是: axios是异步发起,若发起后页面刷新,那么就会丢失...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 108,063
精华内容 43,225
关键字:

后台拿到请求