AJAX使用(一)

AJAX属于前端的一门技术,可以不进行页面的刷新就可以和服务端进行交互,尤其是异步的请求,不用等待整个页面加载完就能返回响应的结果,大大提升了用户的体验。

关于HTTP协议以及GET和POST请求以及如何通过F12查看请求头请求行请求体响应头响应体的信息,大伙都很明白了就不说了。

其次我安装了Node.js,即运行js的一个应用程序。

其次通过node里面的核心库npm执行命令,下载express框架,用于简化js代码的书写。

通过指令 npm i express 即可完成下载,然后是AJAX的初涉:

以下是我的JS代码:

复制代码
const express = require('express');//引入express框架
const app = express();//创建一个express对象
//这里的get是请求的方式,all代表所有请求都可以接收,然后做出响应。
//这里get里面的第一个参数代表访问路径,主机名加端口号加访问路径 app.get(
'/server',(request,response)=>{
//

浏览器的同源安全策略
同源策略,它是由Netscape提出的一个著名的安全策略。现在所有支持JavaScript的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。同源策略是浏览器的行为,是为了保护本地数据不被JavaScript代码获取回来的数据污染,因此拦截的是客户端发出的请求回来的数据接收,即请求发送了,服务器响应了,但是无法被浏览器接收。

设置了如下的代码,就能够跨不同端口号进行访问

    response.setHeader("Access-Control-Allow-Origin","*");
    response.send('HelloWorld!');
});
app.all('/server',(request,response)=>{
    response.setHeader("Access-Control-Allow-Origin","*");
    response.setHeader("Access-Control-Allow-Headers","*");//这里的意思是请求头键值对就算是自定义的也可以接收

    response.send('HelloWorld!');
});
app.all('/json-server',(request,response)=>{
    response.setHeader("Access-Control-Allow-Origin","*");
    response.setHeader("Access-Control-Allow-Headers","*");
    const data = {
        name:"atguigu"
    }
    let str = JSON.stringify(data)

    response.send(str);
});

app.listen(8000,()=>{
    console.log("服务已经启动,监听8000端口中...");
})
复制代码

书写完上面的js代码后,通过终端和node指令就可以加载js脚本。具体使用如下:

 

 这里前面的是js的路径,这个不能错,我的node.js下在D盘,但是能执行指令的原因是Node.js安装的时候就为我们配置好了环境变量。

然后是HTML页面发送请求的代码:

复制代码
    bnt.onclick = function (){

      const xhr = new XMLHttpRequest();
      xhr.open("GET","http://localhost:8000/server");
      xhr.send();
      xhr.onreadystatechange = function (){

        if(xhr.readyState ===4){
            if(xhr.status >=200&&xhr.status<300){
                console.log(xhr.status)
                div.innerHTML = xhr.response;
            }
        }
      }
    }
复制代码

这里以监听点击事件为例:

首先是创建请求对象,然后声明发送请求的方式,然后发送一个请求,这里onreadrstateChange属性需要说一下;

readState是request对象的一个属性,一共有五个值0 1 2 3 4

当readyState==0时,还没发送请求,等于1时,确定了请求方式,等于2时,发送了请求,等于3时,接收到了部分信息,等于4时,接收到了所有信息。

关于

xhr.setRequestHeader('Content-Type','application/x-www-form-urldencoded');

这是一种默认是浏览器编码方式。

我们可以看出,服务器知道参数用符号&间隔,如果参数值中需要&,则必须对其进行编码。编码格式就是application/x-www-form-urlencoded(将键值对的参数用&连接起来,如果有空格,将空格转换为+加号;有特殊符号,将特殊符号转换为ASCII HEX值)。

application/x-www-form-urlencoded是浏览器默认的编码格式。对于Get请求,是将参数转换?key=value&key=value格式,连接到url后

 

posted @   -她的梦-  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
  1. 1 碧天伴走 MyGO!!!!!
  2. 2 影色舞 MyGO!!!!!
  3. 3 詩超絆 MyGO!!!!!
  4. 4 迷路日々 MyGO!!!!!
  5. 5 歌いましょう鳴らしましょう MyGO!!!!!
  6. 6 壱雫空 MyGO!!!!!
碧天伴走 - MyGO!!!!!
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

作词 : 藤原優樹

作曲 : 木下龍平

编曲 : 木下龍平

人知れず

肩落としてる君がいるのに

碧すぎてる空ばかりが眩しい

僕はどんな言葉を君に

言えばいいのか

君に何を

脆くやわい こころで生きる

僕らは 傷つく生き物で

なのに 今日だって

頑張ってる 十分 君はもう

躓いて 転んだって

立ち上がり来たんだ

頑張ってる いつでも

ここに立ってるだけで

必死なんだから

ジタバタで ラクじゃないけれど

迷っても 君と進んでみたいよ

いいかな

誰かには

ちっぽけなものだったとしても

君にとっては

なにより大事なこと

壊さないで 失わないで

守りたいから

となりにいる

「僕なんか」言うのは やめるよ

君にも 言ってほしくないから

だから顔上げて (伝える)

頑張ったよ 昨日の 君だって

思うようにいかない

そんな毎日だって

頑張ったと 知ってる

僕は知ってる だから

こころを隠さないでほしい

らしさなんて

まだわからないままだけど

ぶつかるたび痛んで

でも浮かびあがる輪郭

ああ 見つける

頑張っても ダメだと 思う日も

この手をつなぐから

ぎゅっと 力込めて

頑張ってる ひたすら 息してる

当たり前に過ぎる

一秒なんかないよ

頑張ってる いつでも

ここに立ってるだけで

たたかってるよ

逃げてもいい 道が見えなくても

迷っても 君と走っていたいんだよ

一緒に

点击右上角即可分享
微信分享提示