From c17d8a5c5ab5c5d41afabba0b71a62fbb6d0e1c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9C=E6=9D=8E=E6=B6=9B=E2=80=9D?= <“3014619898@qq.com”> Date: Sun, 4 Dec 2022 23:36:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=8E=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\347\254\224\350\256\260/1129Ajax.md" | 57 +++++++++ ...67\346\261\202\346\226\271\345\274\217.md" | 117 ++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 "45\346\235\216\346\266\233/\347\254\224\350\256\260/1129Ajax.md" create mode 100644 "45\346\235\216\346\266\233/\347\254\224\350\256\260/1201Ajax\350\257\267\346\261\202\346\226\271\345\274\217.md" diff --git "a/45\346\235\216\346\266\233/\347\254\224\350\256\260/1129Ajax.md" "b/45\346\235\216\346\266\233/\347\254\224\350\256\260/1129Ajax.md" new file mode 100644 index 0000000..8052973 --- /dev/null +++ "b/45\346\235\216\346\266\233/\347\254\224\350\256\260/1129Ajax.md" @@ -0,0 +1,57 @@ +# Ajax + +### 1.Ajax简介 + +>AJAX 简介 AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML。 +> +>通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:`无刷新获取数据`。 +> +>AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式。 + +### 2.XML简介 + +>1.XML可扩展标记语言 +> +>2.XML被设计用来传输和存储数据 +> +>3.XML和HTML类似,不同的是HTML中都是预定义标签,而XML中没有预定义标签,全是**自定义标签**,用来表示一些数据 + +例如 + +```xml + + mclarencars + 1966 + +``` + +>现在是被json取代 + +```json +{ + "one":{ + "username":"mclarencars", + "age":"1966" + }, + "two":{ + "username":"lamborghini", + "age":"1963" + } +} +``` + +### 3.Ajax的优点 + +#### 3.1优点 + +>1.可以无需刷新页面与服务端进行通信。 +> +>2.允许你根据用户事件来更新部分页面内容。 + +#### 3.2缺点 + +>1.没有浏览历史,不能回退。 +> +>2.存在跨域问题(同源)。 +> +>3.SEO不友好。 \ No newline at end of file diff --git "a/45\346\235\216\346\266\233/\347\254\224\350\256\260/1201Ajax\350\257\267\346\261\202\346\226\271\345\274\217.md" "b/45\346\235\216\346\266\233/\347\254\224\350\256\260/1201Ajax\350\257\267\346\261\202\346\226\271\345\274\217.md" new file mode 100644 index 0000000..4bdf36d --- /dev/null +++ "b/45\346\235\216\346\266\233/\347\254\224\350\256\260/1201Ajax\350\257\267\346\261\202\346\226\271\345\274\217.md" @@ -0,0 +1,117 @@ +## 一、三种常见的Ajax请求方式 + +#### 1.jQuery发送Ajax请求 + +>Query有三种发送请求方法: +> +>当你只是简单的请求数据,可以直接使用前两种方式请求,当你需要设置的东西较多的时候,可以使用`$.ajax()`方法 + +##### 1.2.1 $.get() + +```javascript + $('button').eq(0).click(function(){ + $.get('http://127.0.0.1:8000/jquery-server', {a:100, b:200}, function(data){ + console.log(data); + },'json'); + }); +``` + +##### 1.2.2 $.post() + +```javascript + $('button').eq(1).click(function(){ + $.post('http://127.0.0.1:8000/jquery-server', {a:100, b:200}, function(data){ + console.log(data); + }); + }); +``` + +##### 1.2.3 $.Ajax + +```javascript + $('button').eq(2).click(function(){ + $.ajax({ + //url + url: 'http://127.0.0.1:8000/jquery-server', + //参数 + data: {a:100, b:200}, + //请求类型 + type: 'GET', + //响应体结果 + dataType: 'json', + //成功的回调 + success: function(data){ + console.log(data); + }, + //超时时间 + timeout: 2000, + //失败的回调 + error: function(){ + console.log('出错啦!!'); + }, + //头信息 + headers: { + c:300, + d:400 + } + }); + }); +``` + + + +## 二、jsonP的使用 + +```javascript + // 1. 动态的创建一个 script 标签------------------------------------------------------------ + var script = document.createElement("script"); + //2. 设置 script 的 src, 设置回调函数 + script.src = "http://localhost:3000/testAJAX?callback=abc"; + function abc(data) { + alert(data.name); + }; + // 3. 将 script 添加到 body 中 + document.body.appendChild(script); + + // 4. 服务器中路由的处理------------------------------------------------------ + router.get("/testAJAX", function (req, res) { + console.log("收到请求"); + var callback = req.query.callback; + var obj = { + ame: "孙悟空", + age: 18 + } + res.send(callback + "(" + JSON.stringify(obj) + ")"); + }); +``` + +#### 2.1jQuery发送jsonP请求 + +```javascript +//前端代码----------------------------------------------------------------------------------- +$('button').eq(0).click(function () { + $.getJSON('http://127.0.0.1:8000/jquery-jsonp-server?callback=?', function (data) { + $('#result').html(` + 名称: ${data.name}
+ 校区: ${data.city} + `) + }); +}); + +//服务端代码----------------------------------------------------------- +app.all('/jquery-jsonp-server', (request, response) => { + // response.send('console.log("hello jsonp")'); + const data = { + name: '尚硅谷', + city: ['北京', '上海', '深圳'] + }; + //将数据转化为字符串 + let str = JSON.stringify(data); + //接收 callback 参数 + let cb = request.query.callback; + + //返回结果 + response.end(`${cb}(${str})`); +}); +``` + -- Gitee