美文网首页
2019-04-06 AJAX

2019-04-06 AJAX

作者: 追夢的蚂蚁 | 来源:发表于2019-04-06 22:40 被阅读0次
请使用原生 JS 写出一个 AJAX 请求(代码中必须出现 XMLHttpRequest)
myButton.addEventListener('click', (e) =>{
    let request = new XMLHttpRequest()
    request.open('post','./xxx')   //配置request
    request.send()
    request.onreadystatechange = () =>{
        if (request.readyState===4) {
            if (request.status >= 200 && request.status<300) {
                let string = request.responseText
                //把符合 JSON 语法的字符串转换成JS对应的值
                let object = window.JSON.parse(string)
                //JSON.parse 是浏览器提供的
          }
       }
    }
})

AJAX

AJAX:异步的 JavaScript 和 XML

  1. 使用 XMLHttpRequest 发请求
  2. 服务器返回 XML 格式的字符串
  3. JS 解析 XML,并更新局部页面

(由于XML太难写,后面都转用JSON)


JSON

JSON(抄袭JS,但是没有undefined和function类型)
JS vs JSON
undefined 没有
null null
['a','b','c'] ["a","b","c"]
function fn(){} 没有
[name:'value'] ["name": "value"]
'string' "string"
var a={}
self.a=a 搞不定
{proto} 没有原型链

  1. JSON没有undefined和function
  2. JSON的字符串首尾必须是"

JS 和 JSON 有什么区别?
1.两门语言,道格拉斯抄袭布兰登艾克的,除了undefined和function其他都炒了


同源策略与CORS跨域

只有 协议+端口+域名 一模一样才允许发AJAX请求
一模一样一模一样一模一样一模一样一模一样

  1. http://baidu.com可以向http://www.baidu.com发AJAX请求吗? no

  2. http://baidu.com:80可以向http://baidu.com:81发AJAX请求吗? no

浏览器必须保证
只有 协议+端口+域名 一模一样才允许发AJAX请求
CORS可以告诉浏览器,我俩一家的,别阻止他

突破同源策略 === 跨域
CORS跨域
response.setHeader('Access-Control-Allow-Origin','*')//CORS核心

Cross-Origin Resouce Sharing
C O源 R S

相关文章

网友评论

      本文标题:2019-04-06 AJAX

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