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. 几十行代码实现简易版koa~

    application.js const http = require("http")// 洋葱模型 function compose(middleware){ return fu ...

  2. webapp 增加 springmvc框架 支持

    1.通过maven创建一个webapp项目,并在IDEA 中增加smart tomcat的插件. 2.然后在pom文件中添加springmvc的依赖 <!-- ServletAPI --> ...

  3. 重试机制的实现(Guava Retry)

    重试机制的实现 重试作用: 对于重试是有场景限制的,参数校验不合法.写操作等(要考虑写是否幂等)都不适合重试. 远程调用超时.网络突然中断可以重试.外部 RPC 调用,或者数据入库等操作,如果一次操作 ...

  4. (四十二)Unittest单元测试框架之关于unittest还需要知道的-跳过测试和预期失败

    随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...

  5. Linux进程调度算法

    进程的状态 进程的基本状态 就绪:进程已获得除处理机以外的所需资源,等待分配处理机资源 执行:进程正在占用处理机资源执行 阻塞:进程等待某种条件,在条件满足之前无法执行.例如发起I/O系统调用,等待I ...

  6. springboot+mybatis多数据源的事务问题

    1.springboot+mybatis实现多数据源后,针对单个数据源我们可以使用@Transactional(name="xxxTransactionManager") 来指定使 ...

  7. PLM数据库脚本升级命令

    登录mysql:mysql -uroot  -S /mysqlrun/plmtestmysql/run/plmtestmysql.sock --port=10050  -p 导出数据库脚本:mysql ...

  8. 【剑指Offer】【链表】反转链表

    题目:输入一个链表,反转链表后,输出新链表的表头. A:定义3个结点,pNode作移动指针,pRet作输出指针,pPrev作前驱指针    在pNode没有到达链尾之前,循环里创建pNext指针记录p ...

  9. AI 智能搜索 开源hanlp实现

    AI智能搜索 通过网络资源可知有很多种开源方式实现智能搜索,其中hanlp在GitHub中响应居高 参考链接: https://www.hanlp.com/ Java版:https://github. ...

  10. linux格式化文件命令

    一些文件被windows打开后代码格式会被改变,使用一下命令来转换 sed -i 's/\r//' filename