Ajax

Posted embrace-ly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax相关的知识,希望对你有一定的参考价值。

什么是Ajax:一种不用刷新整个页面便可与服务器通讯的技术

知识点 

1. XMLHttpRequest

var xhr = new XMLHttpRequest()
xhr.open(‘GET‘,‘/api‘,false)
xhr.onreadystatechange = function()
  if(xhr.readyState == 4)//响应内容解析完成,客户端可以调用
    if(xhr.status == 200)
      console.log(xhr.requestText)
    
  

xhr.send(null)

2. 状态码

3. 跨域

什么是跨域 

  • 浏览器有同源策略,不允许ajax访问其它域接口
  • 跨域条件:协议、域名、端口,有一个不同即为跨域

可以跨域的标签

  • <img src=xxx>
  • <link href=xxx>
  • <script src=xxx>

跨域的几种方式 

1. JSONP

实现原理

  • 加载 http://myname.y.com/embrace.html
  • 不一定服务器真正有一个embrace.html文件
  • 服务器可以根据请求,动态生成一个文件,返回

同理,你要跨域访问某网站的接口 

  • 该网站给你一个地址http://someone.xx.com/api.js
  • 返回内容格式如 callback(id:1,name:‘xx‘)内容可动态生成
<script>
window.callback = function(data)
  //这是我们得到的跨域信息
  console.log(data)

<script src="http://someone.xx.com/api.js">
//以上将返回 callback(...),然后被浏览器调用

2. 服务器端设置 http header

 

以上是关于Ajax的主要内容,如果未能解决你的问题,请参考以下文章

Javascript代码片段在drupal中不起作用

前端面试题之手写promise

Ajax 片段元标记 - Googlebot 未读取页面内容

执行AJAX返回HTML片段中的JavaScript脚本

javascript AJAX片段

Spring MVC 3.2 Thymeleaf Ajax 片段