美文网首页
前端知识点之 ajax 与跨域

前端知识点之 ajax 与跨域

作者: 无故下架内容so账号已弃用 | 来源:发表于2019-01-10 23:55 被阅读0次

Ajax 是 JS 中非常重要的一块内容,虽然我们工作中可能经常会用 jquery 等来实现 Ajax, 原生 JS 的实现方式不得不了解

知识点:

  • XMLHttpRequest
  • 状态码说明
  • 跨域

一、XMLHttpRequest

// ajax 的基本使用

var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function (){
    if (xhr.readyState === 4) {
        if (xhr.status === 200) {
            console.log(xhr.responseText)
        }
    }
}
xhr.open('GET', './api', false)
xhr.setRequestHeader('Content-Type','application/json')
xhr.send()

注:IE 低版本下不支持XMLHttpRequest,要用ActiveXObject,但是我觉得不需要考虑了 IE 低版本浏览器了

二、状态码说明

readyState

  • 0 - 未初始化,还没有调用 send() 方法
  • 1 - 载入,已经调用 send() 方法,正在发送请求
  • 2 - 载入完成,send() 方法已经执行完成,已收到全部响应内容
  • 3 - 交互,正在解析响应内容
  • 4 - 完成,响应内容已经解析完成,可以在客户端调用了

status

  • 2xx: 表示成功处理请求,如 200
  • 3xx: 表示重定向,浏览器直接跳转
  • 4xx: 客户端请求错误,如 404
  • 5xx: 服务端错误

三、跨域

什么是跨域

  • 浏览器有同源策略,不允许 ajax 访问其他域的接口
  • 跨域条件:协议、域名、端口,有一个不同就是跨域
  • 但有三个可以跨域的标签:
    <img src="xxx" />
    <link href="xxx" />
    <script src="xxx"></script>

<img>跨域场景:打点统计,比如百度统计
<link>引用外部的 css 文件
<script>可用于 JSONP

跨域的注意事项

  • 所有的跨域请求都必须经过信息提供方允许
  • 如果未经许可即可获取,那么就是浏览器同源策略出现漏洞

跨域的方式

JSONP
JSONP 的实现原理:
可以通过 script 引用跨域地址的一个 js 文件,而这个文件返回了一个函数,接着就可以调用这个函数

<script>
    window.callback = function (res) {
        // 这是我们跨域得到的信息
        console.log(res)
    }
</script>
<!-- 下面的 js 返回 callback({x: 100, y: 200}) -->
<script src="http: //xxx.xxx.xxx/api.js"></script>

服务端设置http header

  • 需要服务端来做


    image.png

以上为学习笔记,参考资料来源:慕课网的课程

相关文章

  • 前端知识点之 ajax 与跨域

    Ajax 是 JS 中非常重要的一块内容,虽然我们工作中可能经常会用 jquery 等来实现 Ajax, 原生 J...

  • AJAX

    题目 手写一个ajax 跨域的常用实现方式 知识点 XMLHttpRequest 状态码 跨域:同源策略,跨域解决...

  • 跨域实战解决方案

    一.跨域方案 1.JSONP跨域 (1)前端发起jQuery ajax 的get请求 $.getJSON...

  • thinkphp处理前端跨域请求

    1、前端js正常ajax请求 后端php返回 2、前端js用ajax跨域请求 thinkphp返回 ajaxRet...

  • 跨域问题

    加入@CrossOrigin注解, 即可将api允许跨域访问. 注意: 当前端使用ajax方式发起跨域请求时,如:...

  • Ajax全接触(五) 处理跨域方式

    那么什么是跨域呢? 处理跨域方式-代理 我们在前端代码中将ajax访问后台url改成http://127.0.0....

  • ajax跨域请求

    ajax跨域请求(jsonp) 利用JSONP解决AJAX跨域问题的原理与jQuery解决方案JSONP jQue...

  • 解决ajax跨域问题

    Jsonp解决ajax跨域问题 CORS解决ajax跨域问题

  • 浏览器同源策略与ajax跨域方法汇总

    本文先简要介绍前端开发中的浏览器同源政策;然后在跨域问题中,具体介绍跨域ajax请求的应用场景与实现方案。 什么是...

  • 什么是跨域问题?

    什么是跨域问题? 前后端分离,前端服务和后端服务域名不一样,导致前端访问后端服务的时候报错,这个就是Ajax跨域问题

网友评论

      本文标题:前端知识点之 ajax 与跨域

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