Ajax技术 实例篇

article/2025/10/6 6:30:21

项目场景:

提示:这里简述项目相关背景:

例如:本篇文章通过Html+Ajax+node技术实现一个简单的Ajax请求案例,为加强对Ajax技术的了解和实操经验


实现效果

这是请求前的前端页面,点击两个Button按钮分别发起不同的请求
在这里插入图片描述
这是请求后的前端页面,第一个button发起请求,从服务器端传过来一段字符串,并重新渲染在第一个绿色框中,第二个Button按钮发起请求后从服务器端传过来一份Json数据
在这里插入图片描述

代码:

Html

<!DOCTYPE html>
<html>
<head><meta charset="utf-8"><title>AjaxTest</title><style>p { font-style: italic;font-size: 12px; }        div { width: 200px;height: 100px;border: 10px solid green;text-align: center;}</style>
</head>
<body><button id="btn">发起Ajax请求</button><p>点击按钮发起请求</p><div id="content">这是请求前的内容</div><button id="btn1">发起Ajax请求Json数据</button><p>点击按钮发起请求</p><div id="JsonContent">这是请求前的Json数据</div>
</body>
<script src="AjaxTest.js"></script>
</html>

Javascipt:
当单击按钮时触发函数,发起Ajax请求,两个按钮的请求代码大致相同,此仅发其中一个请求代码

btn.onclick = function() {const xhr = new XMLHttpRequest()// 初始化 设置请求方法和 urlxhr.open("GET", "http://127.0.0.1:8888/")// 发送xhr.send()// 事件绑定 处理服务端返回的结果// on 事件// readystate 表示状态 : 0 未初始化 1 open执行 2 send 3 返回部分结果 4 返回所有结果  // change 改变时触发xhr.onreadystatechange = function() {if (xhr.readyState == 4  && xhr.status >= 200) {// 处理返回结果 行 头 空行 体console.log(xhr.status); // 状态码console.log(xhr.statusText); // 状态字符串console.log(xhr.getAllResponseHeaders()); // 响应头console.log(xhr.response); // 响应体div.innerHTML = xhr.response}}
}

node:
服务器代码如下,打开服务器之后,当接收到前端的请求,将触发onRequest函数,响应相关的数据到前端,此处数据为虚拟数据,没有采用数据库连接

function start(route) {function onRequest(request, response) {var pathname = url.parse(request.url).pathname;console.log("request for " + pathname + " receied.")route(pathname)if (pathname == "/") {response.writeHead(200, { "Content-Type": "text/plain", "Access-Control-Allow-Origin": "*" })response.write("这是服务器传来的内容1111")response.end()} else {myObj = {"name": "jiezi","alexa": 10000,"sites": {"site1": "www.jiezi.com","site2": "m.jiezi.com","site3": "c.jiezi.com"}}response.writeHead(200, { "Content-Type": "text/plain", "Access-Control-Allow-Origin": "*" })response.write(JSON.stringify(myObj))response.end()}}http.createServer(onRequest).listen(8888)console.log("服务器已启动")}

遇到问题:

问题一:点击按钮后回调函数无法触发,抛出NULL 异常
在这里插入图片描述
问题二:发起AJax请求时,被拦截,经百度了解是存在跨域问题
在这里插入图片描述

问题解决

问题一:
JavaScript代码引入放在《Head》标签内,导致Javascrip初始化发生在Html树渲染之前,导致DOM对象的获取失败,返回一个NULL,当触发onclick回调函数时发出异常。
解决方案:把JavaScript代码引入放在《body》的结束标签后,问题解决。

问题二:
解决方案,在响应头中设置Access-Control-Allow-Origin,问题得到解决。

response.writeHead(200, { "Content-Type": "text/plain", "Access-Control-Allow-Origin": "*" })

http://chatgpt.dhexx.cn/article/a7p4QZji.shtml

相关文章

Ajax-Ajax基础实例

实例一&#xff1a;点击一个按钮&#xff0c;然后将信息显示到指定的div内。 1、创建一个JAVA web工程&#xff0c;命名为AjaxTest。在webRoot创建一个HTML页面&#xff0c;命名为FirstTest.html&#xff0c;FirstTest.html代码如下&#xff1a; <html><head><t…

Ajax最实用的小例子集合

今天我为大家带来了几个非常实用的ajax小例子&#xff0c;都是在工程中经常用到的实用的例子。适合有基础的同学&#xff0c;废话也不多说了&#xff0c;看代码 哦&#xff0c;对了&#xff0c;所有的例子都是用servletjsp实现的 至于三大框架的&#xff0c;我相信&#xff0c;…

Java 网络编程(大全)

前言必读 读者手册&#xff08;必读&#xff09;_云边的快乐猫的博客-CSDN博客 一、1网络通信的基本模式分为两种 1.CS模式&#xff08;Client---客户端&#xff0c;Server---服务端&#xff09; 客户端是需要程序员去开发的&#xff0c;例如日常使用的各种的APP&#xff0c…

java游戏编程:三路兵线,BOSS走位,代码和视频

一、基本功能&#xff1a; 坦克大战&#xff1a;三路兵线的走&#xff0c;停&#xff0c;走&#xff0c;停。四个版本的飞机大战&#xff1a;多种运动方式。都有代码和视频下载地址。 二、后续改进&#xff1a; 走&#xff0c;停发起攻击&#xff0c;走&#xff0c;停发起攻击…

Java实现石头剪刀布游戏

思路&#xff1a;采取5局3胜制&#xff1b;用两个变量a、b标记&#xff0c;若&#xff0c;第一局电脑胜&#xff0c;则b加1&#xff0c;反之亦然。其中用到int randomNumber new Random().nextInt(4) 随机生成04的一个数&#xff0c;通过生成的数索引数组中的内容&#xff0c;…

Java实现猜数游戏

1 问题 编写一个Java程序&#xff0c;实现以下功能&#xff1a; 2 方法 首先导入java.util包下的Random&#xff0c;让程序随便分配给用户一个数。 再导入java.util包下的Scanner类&#xff0c;构建Scanner对象&#xff0c;以便输入。 利用Random().nextInt()生成一个随机的i…

Java小游戏:飞翔的小鸟 【附源码和素材】

目录 一、项目分析 二、项目展示 1.开始状态 2.运行状态 3.结束状态 三、实现代码 1.游戏启动类 2.地面类 3.小鸟类 4.柱子类 四、代码资源 一、项目分析 创建一个窗口和画板&#xff0c;把画板放到窗口上&#xff0c;在画板上绘画图片 &#xff08;2&#xff09;让小鸟…

Java——猜数字游戏

目录 &#x1f351;前置知识 &#x1f351;题目要求 &#x1f351;代码实现 &#x1f351;测试 &#x1f351;前置知识 既然是猜数字那么就要生成一个随机数 在Java中要生成一个指定范围之内的随机数字有两种方法&#xff1a;一种是调用 Math 类的 random() 方法&…

Java简单实现猜拳游戏

前言 Random类的简单使用 .nextInt()方法&#xff0c;返回伪随机的&#xff0c;均匀分布 int值介于0&#xff08;含&#xff09;和指定值&#xff08;不包括&#xff09;&#xff0c;从该随机数生成器的序列绘制。 public class Demo_02 {//出拳游戏:1表示石头,2表示剪刀,3表…

java实现猜拳游戏

剪刀、石头、布又称“猜丁壳”&#xff0c;古老而简单&#xff0c;这个游戏的主要目的是为了解决争议&#xff0c;因为三者相互制约&#xff0c;因此不论平局几次&#xff0c;总会有胜负的时候。 游戏规则中&#xff0c;石头克剪刀&#xff0c;剪刀克布&#xff0c;布克石头。…

Java游戏编程前篇 修改eclipse背景颜色

最近准备开始研究java游戏设计了。&#xff08;不是安卓的游戏设计&#xff0c;关于安卓的游戏设计&#xff0c;我打算学完java之后直接学cocos2dx&#xff0c;学习java的原因是因为在公司里接触到了eclipse&#xff0c;所以打算顺便将java也啃下来&#xff0c;以后说不定哪天就…

java游戏开发入门(一) - HelloWorld

java游戏开发入门&#xff08;一&#xff09;- HelloWorld 前言开发环境启程 Hello WorldMaven启动类 HelloWorldApp创建一个600 x 600&#xff0c;标题为"Hello world"的窗体main运行效果完整代码 完整项目 前言 开发一款游戏&#xff0c;我相信很多人在学习开发之前…

JAVA编程实现猜数游戏

1.该程序就是随机生成一个1-100的整数让玩家进行游戏&#xff0c;不限次数&#xff0c;直到玩家猜对为止。 2.使用while循环语句实现功能 3.代码展示 import java.util.Random; import java.util.Scanner;public class S11 {public static void main(String[] args) {Random…

Java游戏框架编写

自己抽空编写的一个2D游戏框架(也可以说是工具类集吧)&#xff0c;在此记录一下&#xff0c;开发完了顺便写了一个案例判断框架的可用性 项目地址&#xff1a;https://gitee.com/shaokang123/spring-game-starter 框架特点 支持直接使用Tiled设计地图&#xff0c;以name为beanN…

Java游戏编程——愤怒的小鸟(一)

Java游戏编程——愤怒的小鸟&#xff08;一&#xff09; 前言&#xff1a;最近在b站up主尚学堂杨老师&#xff08;b站链接&#xff09;学习了我做的第一个游戏项目&#xff0c;所以在csdn进行总结&#xff0c;便于今后查看。 本部分主要是将游戏的背景绘制出来 先上一张效果…

java游戏开发(java游戏开发教程)

Java游戏开发绘图器是什么呢&#xff1f; 众所周知&#xff0c;Java GUI以paint进行绘图&#xff0c;以repaint进行图像刷新&#xff0c;而完成repaint及paint这一连贯过程中所用到绘图组件&#xff0c;我将其称为绘图器。就我个人的体会&#xff0c;绘图器的调用时机应始终处于…

Java编程实现三种等级的扫雷游戏(完整版)

大家好&#xff0c;我是陈橘又青&#xff0c;今天用Java编程实现图形化界面的扫雷游戏&#xff08;三种难度&#xff09;&#xff0c;以下是完整的开发思路以及代码&#xff0c;供各位讨论交流。 文章目录 一、效果展示初级难度中级难度高级难度测试界面 二、项目介绍项目背景功…

Java游戏编程初步

现在流行的游戏似乎都是用C或C来开发的。在java平台上几乎没有很大型及可玩的流行游戏。由于java是个新生语言&#xff0c;他的许多特性还有待大家的发掘,但是我们不能否认Java在游戏编程方面的强大性。本文将带领大家一步一步学习编写Java游戏。最终打造属于自己的Java游戏。 …

如何用java语言编写小游戏?(一)

学习java的过程中&#xff0c;如果想找一些小游戏项目来练手的话&#xff0c;我们需要学习哪些技术先呢&#xff1f;&#xff08;适用于java初学者&#xff09; 第一步&#xff1a;了解GUI编程—Swing基础 GUI&#xff08;Graphical User interface&#xff09;&#xff1a; …

SQL编程篇

SQL编程篇 这是以前的学习总结&#xff1a; 这一周将SQL编程篇仔细地看了一遍&#xff0c;有不少感触&#xff0c;因为SQL Server 中的T-SQL语言&#xff0c;在某种程度上就类似C等编程语言&#xff0c;其中有基本运算、控制语句及函数还有一个叫存储过程的东东。但目前对他们在…