美文网首页
前后端通信

前后端通信

作者: 雨泽丶 | 来源:发表于2019-04-28 11:36 被阅读0次

浏览器的同源政策限制:端口,域名,协议 ,只要一个不一样就跨域

前后端如何通信:

  • Ajax : 短连接
  • Websocket : 协议 http https (SSL) file socket.io 长连接,双向的。
  • CORS fetch()
Ajax实现
    <script>
         function ajax(options){
             // 定义一个操作对象
            var pramas = {
                url:'',
                type: 'get',
                data: {},
            success: function (data) {},
            error: function (err) {},
            }
            // 对象属性覆盖
            options = Object.assign(pramas, options)
            // 传入了要请求的地址才会开始做其他的事情
            if(options.url){
                // 拿到请求对象
                var xhr = XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP")
                var url = options.url,    //  htpp://www.baidu.com
                    type = options.type.toUpperCase(), // GET
                    data = options.data,    // {name:"kk",age:12}
                    dataArr = [];            // []
                // 遍历data对象
                for(let key in data){
                    let value = key + '='+ data[key]
                    dataArr.push(value)
                }
                // dataArr = ["name=kk","age=12"]

                // 判断是否为get方式请求
                if(type === "GET"){
                    url = url + "?" + dataArr.join('&')
                    // url = http://www.baidu.com?name=kk&age=12
                    // 初始化请求
                    xhr.open(type, url, true)
                    // 发送请求
                    xhr.send()
                }
                // 判断是否为post请求方式
                if(type === "POST"){
                    // 初始化一个请求
                    xhr.open(type,url, true)

                    // 设置请求头
                    xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
                    
                    // 发送请求
                    xhr.send(dataArr.join('&'))
                }

                // 监听后台返回过来的数据
                xhr.onreadystatechange = function(ev){
                  // console.log(ev)
                    if (xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 304)) {  // 304未修改
              // 如果请求成功之后,回调我们的success函数
                            options.success(xhr.responseText)
          }else {
                          // 如果请求失败之后,回调我们的error函数
              options.error(xhr.responseText)
          }
                }
            }
        }
    
         ajax({
             url: "https://www.baidu.com",
             //成功调用success函数
             success:function(res){
                 console.log("这里是ok的")
                 console.log(res)
             }
         })
         
    </script>

Object.assign()

  • 用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。
  • 如果目标对象中的属性具有相同的键,则属性将被源中的属性覆盖。后来的源的属性将类似地覆盖早先的属性。

toUpperCase

  • 一个新的字符串,在其中 stringObject 的所有小写字符全部被转换为了大写字符。

toLowerCase

  • 一个新的字符串,在其中 toLowerCase的所有大写字符全部被转换为了小写字符。(和上面相反)

for in

  • 用于对数组或者对象的属性进行循环操作。
  • 循环中的代码每执行一次,就会对数组的元素或者对象的属性进行一次操作。

相关文章

  • JS里AJAX的使用--(服务器与客户端数据交换)

    使用ajax需要先了解计算机前后端的通信原理,也就是需要了解我们的服务器与客户端数据是如何交换的。 前、后端通信原...

  • 前后端通信

    1、浏览器的同源政策限制:端口,域名,协议 ,只要一个不一样就跨域 2、前后端通信的方式 ajax Websock...

  • 前后端通信

    浏览器的同源政策限制:端口,域名,协议 ,只要一个不一样就跨域 前后端如何通信: Ajax : 短连接 Web...

  • 前后端通信—后端主动给前端通信那种

    # 前后端通信 ## 1、websocket `websocket :长连接,双向的。node搭建的websoc...

  • 1、Spring起步练习

    一、后端开发的概念和技术栈 1.1 什么是后端开发 什么是后端开发-知乎 JavaWeb掌握什么? 网络通信协议:...

  • 前后端通信细节

    浏览器和服务器端通过HTTP报文进行通信,HTTP报文是一段按照特定格式编写的字符串。在前后端通信过程中,发送方需...

  • 前后端如何通信

    前后端通信的三种常用方式为: ajax, 受同源策略限制 websocket, 一种新的应用层协议, 不受同源策略...

  • 通信类

    什么是同源策略及限制? —> 前后端如何通信? —> 如何创建Ajax? —> 跨域通信的几种方式? 一、什么是同...

  • 微信小程序webSocket多人通信案例

    webSocket 多人通信原理 每个小程序端向后端发送建立webSocket连接的请求,后端可以储存每一个连接。...

  • HTTP协议、存储、Ajax

    前后端数据交互与 HTTP 协议 1、前后端通信是什么(1)前端和后端交互的过程(2)浏览器和服务器之间数据交互的...

网友评论

      本文标题:前后端通信

      本文链接:https://www.haomeiwen.com/subject/kmfcnqtx.html