精华内容
下载资源
问答
  • 本篇文章主要介绍了前端ajax的各种与后端交互的相关知识,具有很好的参考价值。下面跟着小编一起来看下吧
  • 今天小编就为大家分享一篇JS的Ajax与后端交互数据的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 前后端交互,后端与后端交互中文乱码 前端工程师,当你和后端的文件都是以UTF-8的编码,但是后台大哥告诉你,中文是乱码的,然后你百度了半天,给jQuery.ajax设置了contentType: "application/x-...

    原文:https://www.cnblogs.com/liaozhenting/p/6869668.html

     

    前后端交互,后端与后端交互中文乱码

    前端工程师,当你和后端的文件都是以UTF-8的编码,但是后台大哥告诉你,中文是乱码的,然后你百度了半天,给jQuery.ajax设置了contentType: "application/x-www-form-urlencoded; charset=UTF-8", 但是却并没有卵用,后端告诉你,传过去的字符串都是GBK编码,项目期限快到了,所有人都怀疑是你的问题时。你会想到什么?

    我分享一下我的故事。其实主要是讲一下这个BUG如何怎么解决的。我是一个前端工程师,接受了一个项目,处于安全考虑,是前端发送信息给代理的后端,代理后端再发送信息到客户公司的后台,然后数据库保存信息。

    后端告诉我,如论怎么设置,我传过去的字符串都是GB2312编码。我决定自己将传过去的字符串进行编码。然后再POST传过去。

    var postData=encodeURIComponent(encodeURIComponent(str));

    为什么编码两次?因为我的后台是Java语言。

    服务器端TOMCAT会自动先做一次decode,所以客户端要编码两次,服务器端只解码一次就OK了。并且这个奇妙的BUG就是无论你怎么改,后台显示你传过去的都是GB2312编码,所以你编码两次,TOMCAT自动解码一次,然后,再在程序中 java.net.URLDecoder(***, "UTF-8")) 就可以得到正确的字符串。不管是按 GB2312还是 UTF-8 还是 ISO-8859-1 。

    但是代理后台没有问题正常显示中文,客户的后台保存到数据库确是乱码。我直觉告诉这绝对跟我没有关系了。

    我观察一下了乱码的形状,

     

    初步判断是是ISO-8859-1的编码形式。开始猜测应该是客户的后台出了问题。

    客户的后台程序员建议我们写个junit测试。还发了一个能正确提交中文的示例代码。我观察到他的示例代码有段注释“必须POST提交,否则会以ISO-8859-1编码”。

    我猜测可能是提交方式的原因。

    后来因为某个原因这个接口信息提交不上去,我登录远超服务器,看到代理后端的TOMCAT显示get请求 400。果然是代理后端是get方式向客户公司的后台发数据。

    我叫代理后端的程序员改成POST方式提交到客户之后,数据库就正常了。

    写这篇文章虽然轻松,但是找BUG却备受煎熬,尤其是别人很懒不想配合你的时候。

    作为前端工程师,必须时刻保持警惕。因为你作为前端,后端的错你是很难发现的。你必须对后端有所了解,才能少被坑。

    总结一下知识点:

    1.通过乱码判断这是什么编码,方便确认出了什么错。

    ISO-8859-1的乱码

    GBK的乱码

    UTF-8的乱码

    2.Java某框架,get方式提交过来的参数,如果不设置,默认是iso8859-1编码。

    3.找BUG就像科学研究,提出假设,找寻证据,验证假设。

    讲道理我一个前端工程师是一辈子找不出这种后端制造的BUG,但是我最近学了PHP,对后端有了一定了解,所以PHP是最好的语言。

    展开全文
  • 详解之前后端交互

    2020-02-23 21:43:49
    详解之前后端交互

    前端职责:
    1.页面架构的搭建
    2.从后台拿数据渲染页面

    1.URL
    后端写了url交给前端,如果后需要借助查询条件才能查询到前端需要的数据时,前端需提供URL请求的参数。
    2.接口
    在测试时由后端写出提供给前端,前端使用时发现接收的数据存在出入时,要及时通知后端进行修改,切记!前段在未获得后端同意的前提下不可私自改动接口文档
    3.交互时的主要数据格式
    目前json为主要格式(xml json form iframe 四种)
    4.请求参数的方法
    get与post
    详解 :菜鸟教程.
    6.前端应该告知后台哪些有效信息,后台才能返回前端想的数据的呢?
    1.先将要展示的页面内容进行模块划分,将模块的内容提取出来,以及方便前端的一些标志值等,将所有想要的内容和逻辑告知后端;
    2. 后端就会去数据库里面去查找相应的数据表中去获得相应的内容,或者图片地址信息;
    3. URL中的参数主要是根据后台需要;
    4. 如果后台需要一个参数作为查询的辅助条件 前端在URL数据请求时就传递参数;
    5. 参数前面用 “ ?”连接 , 几个参数中间 “&”号连接;

    展开全文
  • 小程序与后端交互

    千次阅读 2019-04-19 06:39:36
    1 后端交互时序图 2 不校验域名 3 点击小程序的功能 4 request请求 5返回结果 6更新视图层 7使用案例 7.1 WXML文件 7.2 WXSS文件 7.3 JS文件 8 GitHub地址 1 后端交互时序图 2 不校验域名 如果...

    目录

    1 后端交互时序图 

    2 不校验域名

    3 点击小程序的功能

    4 request请求

     5 返回结果

     6 更新视图层

     7 使用案例

     7.1 WXML文件

    7.2 WXSS文件

    7.3 JS文件

    8 GitHub地址

     


    1 后端交互时序图 

    2 不校验域名

    如果我们没有备案好的域名的话,在开发过程中我们可开启不校验域名模式,等项目开发好后再到小程序后台配置合法的域名,

    开启不校验域名的操作如下图所示。

    3 点击小程序的功能

    这里与小程序的具体业务有关,我们可以自己根据需求来添加,比如用户点击了某个按钮或者提交了某个表单之类的事件。

    4 request请求

    request请求,就是根据用户在小程序上提交的事件来向后端服务器发起请求,在小程序中用来发起http请求的可以使用wx.request()来完成。

    注:在另一篇文章有讲解,这里就不复述了,链接

     5 返回结果

    后端服务器根据请求的类型向小程序返回请求结果,一般在开发的过程中,我们会以JSON作为返回结果的数据格式。

     6 更新视图层

    wx.request()success回调函数里,我们可以使用this.setData()将从后端服务器上返回的结果更新到视图层(WXML)

    这里需要注意的一点:

    直接在success回调函数里使用this.setData()是会报错的,因为此时的this指针指向的是success回调函数,而不是Page(),所以我们可以在发起wx.request之前,把this赋值给一个新的变量,如下图所示。

     7 使用案例

    注:笔者这里使用的是一个开放的图片推荐的API来作为后端处理请求

    API地址:https://api.apiopen.top/getImages

    请求方式:POST

    请求数据:page(字符串型),count(字符串型)

    说明:通过小程序的刷新按钮来向后端服务器发起刷新图片的请求后端接受到刷新请求后向小程序的JS文件返回请求结果JS文件正确接收到结果后再将新的内容通过this.setData()更新到视图层(WXML),该案例的效果如下图所示。

     7.1 WXML文件

    <view class="image_box">
      <view class="image_list" wx:for="{{data}}">
        <image src="{{item.img}}"  mode="aspectFill" binderror="imgerror">
        </image>
      </view>
    </view>
    <button bindtap='getImages' type='primary'>刷新</button>

    7.2 WXSS文件

    .image_box {
      width: 100%;
      height: 480rpx;
      overflow: hidden;
      padding: 60rpx;
      white-space: nowrap;
    }
    
    .image_list {
      width: 800rpx;
      height: auto;
      display: inline-block;
    }
    
    image {
      border-radius: 40rpx;
    }
    

    7.3 JS文件

    //获取应用实例
    const app = getApp()
    Page({
      data: {},
      // 监听页面加载
      onLoad: function () {
        this.getImages()
      },
      // 不能正确加载的图片再次请求加载
      imgerror: function (res) {
        wx.showToast({
          title: '稍等',
          icon: 'loading',
          duration: 2000
        })
        this.getImages()
      },
      // 通过API请求图片资源
      getImages() {
        var seft = this
        wx.request({
          // 向后发起请求的地址
          url: 'https://api.apiopen.top/getImages',
          // 请求的数据
          data: {
            page: '',
            count: '1'
          },
          // 设置请求头,GET请求的话可以省略此项
          header: {
            'content-type': 'application/x-www-form-urlencoded'
          },
          // 请求的方式
          method: 'POST',
          dataType: 'json',
          responseType: 'text',
          // 请求成功的回调函数
          success: function (res) {
            var data = res.data.result
          // 将请求的结果更新到视图层
            seft.setData({
              data: data
            });
          }
        })
      }
    })
    

    8 GitHub地址

    https://github.com/lwqbrell/wechat-images

    展开全文
  • JS的Ajax与后端交互数据

    千次阅读 2017-05-09 17:45:07
    JS的Ajax与后端交互数据

    JS的Ajax与后端交互数据


          JS中很多地方会使用Ajax与后台进行数据交互。


          Ajax是通过http,使得JS与后端进行数据通信,由于

          Ajax的异步特性,可以使多个Ajax请求同时访问后端,

          对页面的局部数据进行逻辑处理,并渲染。


           ajax中前端和后端的交互图:

          


       

        代码实现:

       

    $.ajax({
                    type: "post",
                    url: "http://localhost:8080/ccnb/user/login",
                    data: {
                        "telephone": login_name,
                        "password": login_password
                    },
                    dataType: "json",
    //            contentType:'application/jso
    展开全文
  • 前端后端交互的方法

    千次阅读 2017-09-05 09:34:21
    前端后端交互的方法: 前端给后端: 1.form通过name来传送 所有value的值到 form的action属性的方法中 form的常用提交方法:(转载自:http://blog.csdn.net/itmyhome1990/article/details/41849175) form id=...
  • Django之前后端交互篇目录

    千次阅读 2019-01-20 17:34:47
    Django之前后端交互篇目录 Django初识之生命周期【一】点击跳转 Django之创建项目【二】点击跳转 Django之URL路由系统(关系映射,name值,路由分发,默认值,命名空间namespace)【交互篇一】 点击跳转  实战...
  • fetch是纯原生JS与后端交互的方法,请注意,Fetch规格不同于jQuery.ajax(),主要体现在两个方面: 即使响应是HTTP 404或500,从 fetch() 返回的Promise也不会拒绝HTTP错误状态。相反,它将正常解析(ok状态设置为...
  • 通过ESP8266WIFI模块让51单片机向后端交互数据

    千次阅读 多人点赞 2019-12-16 21:28:41
    这一次做的是用ESP8266WIFI模块,让51单片机与后端交互数据。简单地发了一个字符串。 模块连接部分:VCC接电源,GND接地,模块的TXD接单片机的RXD,模块的RXD接单片机的TXD。 需要注意的是在程序烧录进单片机之前,...
  • spring boot 与 iview 前后端分离架构之前后端交互的实现(六)axios的跨域访问工具的封装实现实现前后端交互-后端的实现实现前后端交互-前端的实现bug修复mysql的maven依赖的版本问题导致启动报错 axios的跨域访问...
  • 一、vue.js前端框架与flask后端交互几点体会: 1、flask后端应为开启状态 2、如果前后端的端口号不一致,vue.js前端框架需要添加跨域的配置(根目录创建vue.config.js配置文件) 3、使用axios将前端数据提交到后端,...
  • 前端与后端交互时,出了问题如何解决? 接口文档中包括:服务器的地址,请求参数,请求方式,返回的数据格式 前后端交互的过程: 客户端需要设置请求的地址,请求的参数,请求的方式; 发送请求后,得到服务器端...
  • 一开始我以为后端的接口只能是C++中那种常规的函数...其实之前我是见到过的,比如当时开发时用到的js,它实际上就是前端经常用到的语言,其中的ajax(阿贾克斯)中就是一种和后端进行交互的方式,它里面就会有那个url...
  • vue前端与java后端交互

    万次阅读 2018-12-26 17:21:53
    前端写法:  后端布局:
  • 小程序后端交互url配置

    万次阅读 2018-05-23 09:41:56
    内容:小程序后端服务url配置,以及报错处理(request 合法域名校验出错)。1、配置config.js//域名要在小程序的管理平台配置好,如果出现调用时报错,无效的域名,可在微信开发工具左边点项目--&gt;配置信息--&...
  • 前后端交互逻辑说明$axure.utils.getTransparentGifPath = function() { return 'resources/images/transparent.gif'; };$axure.utils.getOtherPath = function() { return 'resources/Other.html'; };$axure....
  • JS中很多地方会使用Ajax与后台进行数据交互。Ajax是通过http,使得JS与后端进行数据...ajax中前端和后端交互图:代码实现:$.ajax({type: "post",url: "http://localhost:8080/ccnb/user/login",data: {"telepho...
  • angular访问后端服务器,进行数据交互,可以通过如下三种方式传递数据给服务端; 参数的形式:api/users?username=abc&age=18 通过表单的形式提交数据,在请求头加上:Content-Type: application/x-...
  • java之前后端交互原理

    2020-08-26 23:32:29
    css给浏览器"化妆", js与客户沟通
  • 一、使用原生JavaScript的ajax进行交互   二、使用jQuery封装的ajax进行交互
  • 使用 CollectionSpace 后端。 优先级(CRUD): 当局和儿童记录 集合对象 角色 有关命令行界面,请参阅相关的。 快速入门(来自源代码) 安装node和npm (推荐nvm与当前的stable ie nvm use stable )。 克隆并cd...
  • React与后端交互的一种方式

    千次阅读 2019-03-24 20:38:23
    上周工作中需要将一个react前端项目与spring的后端项目进行联调,但之前从未单独做过这种前后端分离的系统,虽然对react用法进行了基本学习,但开始始终没搞明白这种形式的系统前后端是如何交互的。 后查看了公司...
  • Beego学习笔记之前后端交互

    千次阅读 2018-11-16 11:26:50
    前后端交互后端向前端传数据: 假设我们的方法接受this *CsdnController 一个参数 1.可以在后端使用this.Data["str"]=xxx //str可以是任意命名, 2.在前端使用{{.str}}直接提取 也可以将一个...
  • 前端: <!DOCTYPE html> <html> <head> <metacharset="utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body> <form target="_blank" ...in...
  • 前端与后端交互工具

    2019-09-15 10:57:03
    apizza,postman 转载于:https://my.oschina.net/puguole/blog/2993556
  • 我的数据库里有若干字段,比如景点的name 以及pic ,address现在想要把每个地址address中包含关键字北京的这条数据,只把name,pic这两个属性以一定的布局输出到一个jsp的div当中,也就是说会循环输出多个这样的div块...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,383
精华内容 58,553
关键字:

后端交互