1 const { request, response } = require('express');
2 //引入express
3 const express = require('express');
4 //创建对象
5 const app=express();
6 //创建路由规则
7 app.get('/server',(request,response)=>{
8 //设置响应头 设置允许跨域
9 response.setHeader('Access-Control-Allow-Origin','*');
10 //设置响应体
11 response.send('send rexpress');
12 });
13 //监听端口启动服务
14 app.listen(8000,()=>{
15 console.log("服务已经启动,8000端口监听中....");
16 })
 1 <html>
2 <head>
3 <meta charset="utf-8"/>
4 <title>ajax初学基础案例</title>
5 <style type="text/css">
6 #result{
7 width: 200px;
8 height: 200px;
9 border: 1px solid red;
10 }
11 </style>
12 </head>
13 <body>
14 <button>点击发送请求</button>
15 <div id="result"></div>
16
17 <script>
18 //dom获取元素
19 const btn=document.getElementsByTagName("button")[0];
20 const result=document.getElementById("result");
21
22 //绑定单击事件
23 btn.onclick=function(){
24 //创建对象
25 const xhr=new XMLHttpRequest();
26 //初始化请求方法和url http://不要省略
27 xhr.open('GET','http://127.0.0.1:8000/server');
28 //发送
29 xhr.send();
30 //事件绑定 处理返回的结果
31 xhr.onreadystatechange=function(){
32
33 if(xhr.readyState===4){
34 //判断响应状态码
35 if(xhr.status>=200 && xhr.status<300){
36
37 //设置result的文本
38 result.innerHTML=xhr.response;
39 }else{
40
41 }
42 }
43 }
44 }
45 </script>
46 </body>
47
48 </html>
 
成功运行,过程中有几处疏漏拼错.但奇怪的是js部分第一次并没有写入 const result=document.getElementById("result");
但还是成功将result.innerHTML=xhr.response执行了。不知道是什么原因。
 
post请求: 需要在js中加上

1 app.post('/server',(request,response)=>{
2 //设置响应头 设置允许跨域
3 response.setHeader('Access-Control-Allow-Origin','*');
4 //设置响应体
5 response.send('send post rexpress');
6 });

然后:

<script>
//dom获取元素 const result=document.getElementById("result"); //绑定事件
result.addEventListener("mouseover",function(){
//定义对象
const xhr=new XMLHttpRequest();
//初始化 设置类型与URL
xhr.open('POST','http://127.0.0.1:8000/server');
//发送
xhr.send();
//事件绑定
xhr.onreadystatechange=function(){
//判断
if(xhr.readyState===4){
if(xhr.status>=200&&xhr.status<300){
result.innerHTML=xhr.response;
}else{ }
}
}
}); </script>
大致了解,需要多使用
 

AJAX请求的基本操作的更多相关文章

  1. js对WebApi请求的基本操作

    在WebAPI对外提供的,大概有4种接口,get,post,delete,put,现在,我就简单的来说一下js请求webApi的方式和大概的作用: get:在webApi中,get方法通常是用来获取数 ...

  2. <day001>存储到Mysql、mongoDB数据库+简单的Ajax请求+os模块+进程池+MD5

    任务1:记住如何存储到Mysql.mongoDB数据库 ''' 存储到Mysql ''' import pymysql.cursors class QuotePipeline(object): def ...

  3. 一步步学习javascript基础篇(9):ajax请求的回退

    需求1: ajax异步请求 url标识请求参数(也就是说复制url在新页面打开也会是ajax后的效果) ajax异步请求没问题,问题一般出在刷新url后请求的数据没了,这就是因为url没有记录参数.如 ...

  4. 配置Chrome支持本地(file协议)的AJAX请求

    什么问题 WEB开发过程中,很多时候我们都是写一些简单的Demo,并不是开发一个完整项目,此时我们常见的操作是: 新建文件夹 新建需要的文件 在Sublime(或其他编辑器)中完成DEMO的编码 双击 ...

  5. JQuery使用deferreds串行多个ajax请求

    使用JQuery对多个ajax请求串行执行. HTML代码: <a href="#">Click me!</a> <div></div&g ...

  6. ajax请求成功后打开新开窗口(window.open())被拦截的解决方法

    问题:今天在做项目时需要在ajax请求成功后打开一个新的窗口,此时遇到浏览拦截了新窗口的问题,尝试在ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('clic ...

  7. 关于ajax请求,在参数中添加时间戳的必要性

    之前做项目的时候,看到别人的前端ajax请求代码中,都会带有一个时间戳类型的参数,当时随便查了一下,是为了防止浏览器缓存的原因,所以也没有进行深究,每次写的时候也习惯性的带一个,最近新项目中,我发现好 ...

  8. SpringMVC下Ajax请求的方法,@Responsebody如果返回的是布尔值,ajax不会接到任何回传数据

    SpringMVC框架下,如果用ajax向后台请求得方法如果使用@Responsebody返回布尔值的话,ajax得不到任何的回传数据. 但是如果返回String类型,就是正常的. 测试了下代码写得没 ...

  9. 【学习篇:他山之石,把玉攻】Ajax请求安全性讨论

    在开发过程中怎样考虑ajax安全及防止ajax请求攻击的问题. 先上两段网摘: Ajax安全防范的方法: 判断request的来源地址.这样的方式不推荐,因为黑客可以更改http包头,从而绕过检测. ...

  10. jQuery Ajax请求(关于火狐下SyntaxError: missing ] after element list ajax返回json,var json = eval("("+data+")"); 报错)

    $.ajax({    contentType: "application/x-www-form-urlencoded;charset=UTF-8" ,    type: &quo ...

随机推荐

  1. PowerShell学习笔记一_cmdlet、管道、如何入门

    PowerShell文件: .ps1 脚本文件 .psm1 模块文件 .psd1 模块描述文件 cmdlet(命令行) 组成: 动词-名词,例如: 1. Get-Service(获取所有服务),类似于 ...

  2. nop4.3 admin中添加新菜单

    感觉跟之前版本区别不是很大,先记录下. 1. 首先在sitemap.config 文件里添加菜单. <siteMapNode SystemName="SystemManage" ...

  3. 用字典代替'if-elif-else'

    在实际应用中,我们经常会需要采用if-elif-else控制语句以根据不同条件,作出不同的操作.if-elif-else固然可以,但是它也存在冗余的缺点,特别是当条件较多时这一缺点尤为明显.因此,本文 ...

  4. protobuf遇坑总结

    在一个vs2013解决方案下创建了三个工程文件,在其中一个工程(Foundation)中放有CtrlMessage.pb.h和ControlMessageTags的头文件.编译后出错总共68处. 错误 ...

  5. dnspy查看async方法

  6. P1982 [NOIP2013 普及组] 小朋友的数字 题解

    目录 简单版 题目 code 本题 code 简单版 先要会做这道题 题目 P1115 最大子段和https://www.luogu.com.cn/problem/P1115 这道题其实是动态规划,d ...

  7. C++实现单链表相关操作

    #include<iostream>#include<cstdlib>//C++动态分配存储空间using namespace std;#define OK 1#define ...

  8. this.$refs 获取的值是undefined

    以下是父组件内的代码截图 如果想取子组件内的方法,参数,等可以试以下两种方法 1.在mounted内使用this.$nextTick(()=>{   }) 2.直接再undated() {} 内 ...

  9. C# 使用CefSharp完成自动签到

    1首先新建项目,右键项目选择管理NuGet 程序包,在浏览中搜索CefSharp.Winfrom ,点击安装,会自动安装相应的包.因为CefSharp是不能以AnyCPU的模式运行所以需要修改配置,有 ...

  10. Linux:服务器(CentOS)搭建FTP服务

    Vsftpd(very secure FTP deamon)是众多Linux发行版中默认的FTP服务器.本文以CentOS 8(腾讯云)服务器为例,使用vsftpd搭建Linux云服务器的FTP服务器 ...