(二)JS异步请求

  这里我使用的编译器是WebStorm(不管用哪个编译器我们的最终结果都是一样的就是要请求后台的数据,随后将后台返回的结果展示在界面中),后台的配置请参考Ajax练习一(配置Java后台)。
  这里用可能会遇到跨域的问题。解决方式只需要在后台设置即可。因为我后台用的是SpringMvc,所以只需要在Controller中加上@CrossOrigin注解即可!添加方式如下图所示:

Get请求

1.设置界面的布局:

  这里先简单的设置一些界面效果(因为我不会Html - -!,写这些纯属三分钟热血)。布局如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <title>Title</title>
    <style> /* 这里给P标签设置点样式 为了显眼一些 */ #result{ background-color: skyblue; font-size: 30px; color: white; } </style>
</head>
<body>
<!-- 用来显示请求的结果 -->
<p id="result">用于展示结果</p>
<!-- 按钮用来请求后台的数据 -->
<button id="request">点我请求后台的数据</button>
<!-- 设置一些操作 -->
<script> //点击按钮后向后台发起请求 document.getElementById("request").onclick = function () { var getRequest = new XMLHttpRequest();//创建请求对象 getRequest.open("GET","http://192.168.1.101:8080/mineTest/first.do",true);//链接服务器 getRequest.send();//发送请求 getRequest.onreadystatechange = function () { if (getRequest.readyState === 4) {//请求已完成,且响应已就绪 if (getRequest.status === 200) {//请求成功 var resultStr = getRequest.responseText//获取结果 var resultObj = JSON.parse(resultStr);//解析数据 //将返回的结果展示到P标签中 document.getElementById("result").innerHTML = "名称 : " + resultObj.name + "</br>" + "年龄 : " + resultObj.age + "</br>" + "性别 : " + resultObj.sex; } else { alert("错误码 : " + getRequest.status); } } } } </script>
</body>
</html>

2.运行界面查看结果:

  首先打开网页查看一下效果,效果如下图所示:

  点击按钮,请求后台,请求成功后的效果如下图所示:

Post请求

1.设置界面的布局:

  这里同样的简单的设置一个界面。提交两个数字,让后台把两数相加的结果返回。布局如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- 输入提交的内容 -->
<label>请输入数字1 : </label>
<input type="number" id="num1">
</br>
<label>请输入数字2 : </label>
<input type="number" id="num2">
</br>
<!-- 按钮用来请求后台的数据 -->
<button id="request">点我请求后台的数据</button>
<!-- 设置一些操作 -->
<script> //点击按钮后向后台发起请求 document.getElementById("request").onclick = function () { var getRequest = new XMLHttpRequest();//创建请求对象 getRequest.open("POST","http://192.168.1.101:8080/mineTest/sum.do",true);//链接服务器 var postStr = "num1=" + document.getElementById("num1").value + "&num2=" + document.getElementById("num2").value; getRequest.setRequestHeader("contentType","text/html;charset=uft-8");//设置编码格式 getRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");//表单类型 getRequest.send(postStr);//发送请求 getRequest.onreadystatechange = function () { if (getRequest.readyState === 4) {//请求已完成,且响应已就绪 if (getRequest.status === 200) {//请求成功 var resultStr = getRequest.responseText//获取结果 alert("返回结果 : " + resultStr); } else { alert("错误码 : " + getRequest.status); } } } } </script>
</body>
</html>

  在后台的TestController类中添加一个方法,用来接收参数和返回结果,代码如下:

/** * 求和并返回 * @param request * @param response * @throws IOException */
    @RequestMapping(value = "/sum",method = RequestMethod.POST)
    public void sum(HttpServletRequest request,HttpServletResponse response) throws IOException{
        response.setCharacterEncoding("UTF-8");
        int num1 = Integer.parseInt(request.getParameter("num1"));
        int num2 = Integer.parseInt(request.getParameter("num2"));
        response.getWriter().write(num1 + " + " + num2 + " = " + (num1 + num2));
    }

2.运行界面查看结果:

  打开网页查看一下效果,效果如下图所示:

  输入数字后点击按钮,请求后台,请求成功后的效果如下图所示:

  这样一个使用Ajax实现前后台交互小例子就完成了!接下来将使用JQuery来实现简单的get、post请求。

Ajax练习二原生JS异步请求的更多相关文章

  1. html5 拖拽及用 js 实现拖拽功能的示例代码

    这篇文章主要介绍了html5 拖拽及用 js 实现拖拽,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. amaze ui 的使用详细教程

    这篇文章主要介绍了amaze ui 的使用详细教程,本文通过多种方法给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. HTML5适合的情人节礼物有纪念日期功能

    这篇文章主要介绍了HTML5适合的情人节礼物有纪念日期功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  4. 应用程序关闭时的iOS任务

    我正在构建一个应用程序,通过ajax将文件上传到服务器.问题是用户很可能有时不会有互联网连接,并且客户希望在用户重新连接时安排ajax调用.这可能是用户在离线时安排文件上传并关闭应用程序.应用程序关闭时可以进行ajax调用吗?

  5. swift皮筋弹动发射飞机ios源码

    这是一个款采用swift实现的皮筋弹动发射飞机游戏源码,游戏源码比较详细,大家可以研究学习一下吧。

  6. Swift与Js通过WebView交互

    开发环境:Swfit2.3XCode8.2基础概念jscontext,jscontext是代表JS的执行环境,通过-evaluateScript:方法就可以执行一JS代码JSValue,JSValue封装了JS与ObjC中的对应的类型,以及调用JS的API等JSExport,JSExport是一个协议,遵守此协议,就可以定义我们自己的协议,在协议中声明的API都会在JS中暴露出来,才能调用Swif

  7. JSCore swift

    如果双方相互引用,会造成循环引用,而导致内存泄露。以上是Jscore的基本使用,比较简单

  8. Swift WKWebView的js调用swift

    最近项目需求,需要用到JavaScriptCore和WebKit,但是网上的资源有限,而且比较杂,都是一个博客复制另外一个博客,都没有去实际敲代码验证,下面给大家分享一下我的学习过程。

  9. Swift WKWebView的swift调用js

    不多说,直接上代码:在html里面要添加的的代码,显示swift传过去的参数:这样就实现了swift给js传参数和调用!

  10. 在 Swift 專案中使用 Javascript:編寫一個將 Markdown 轉為 HTML 的編輯器

    你有強烈的好奇心,希望在你的iOS專案中使用JavaScript。jscontext中的所有值都是JSValue對象,JSValue類用於表示任意類型的JavaScript值。因此,我們既需要寫Swift代碼也要寫JavaScript代碼。此外,我們還會在JavaScript中按照這個類的定義來創建一個對象并對其屬性進行賦值。從Swift中呼叫JavaScript就如介紹中所言,JavaScriptCore中最主要的角色就是jscontext類。一個jscontext對象是位於JavaScript環境和本

随机推荐

  1. xe-ajax-mock 前端虚拟服务

    最新版本见Github,点击查看历史版本基于XEAjax扩展的Mock虚拟服务插件;对于前后端分离的开发模式,ajax+mock使前端不再依赖后端接口开发效率更高。CDN使用script方式安装,XEAjaxMock会定义为全局变量生产环境请使用xe-ajax-mock.min.js,更小的压缩版本,可以带来更快的速度体验。

  2. vue 使用 xe-ajax

    安装完成后自动挂载在vue实例this.$ajaxCDN安装使用script方式安装,VXEAjax会定义为全局变量生产环境请使用vxe-ajax.min.js,更小的压缩版本,可以带来更快的速度体验。cdnjs获取最新版本点击浏览已发布的所有npm包源码unpkg获取最新版本点击浏览已发布的所有npm包源码AMD安装require.js安装示例ES6Module安装通过Vue.use()来全局安装示例./Home.vue

  3. AJAX POST数据中文乱码解决

    前端使用encodeURI进行编码后台java.net.URLDecoder进行解码编解码工具

  4. Koa2框架利用CORS完成跨域ajax请求

    实现跨域ajax请求的方式有很多,其中一个是利用CORS,而这个方法关键是在服务器端进行配置。本文仅对能够完成正常跨域ajax响应的,最基本的配置进行说明。这样OPTIONS请求就能够通过了。至此为止,相当于仅仅完成了预检,还没发送真正的请求呢。

  5. form提交时,ajax上传文件并更新到&lt;input&gt;中的value字段

  6. ajax的cache作用

    filePath="+escape;},error:{alert;}});解决方案:1.加cache:false2.url加随机数正常代码:网上高人解读:cache的作用就是第一次请求完毕之后,如果再次去请求,可以直接从缓存里面读取而不是再到服务器端读取。

  7. 浅谈ajax上传文件属性contentType = false

    默认值为contentType="application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。在这里,我们主要谈谈contentType=false.在使用ajax上传文件时:在其中先封装了一个formData对象,然后使用post方法将文件传给服务器。说到这,我们发现在JQueryajax()方法中我们使contentType=false,这不是冲突了吗?这就是因为当我们在form标签中设置了enctype=“multipart/form-data”,

  8. 909422229_ajaxFileUpload上传文件

    ajaxFileUpload.js很多同名的,因为做出来一个很容易。我上github搜AjaxFileUpload出来很多类似js。ajaxFileUpload是一个异步上传文件的jQuery插件传一个不知道什么版本的上来,以后不用到处找了。语法:$.ajaxFileUploadoptions参数说明:1、url上传处理程序地址。2,fileElementId需要上传的文件域的ID,即的ID。3,secureuri是否启用安全提交,默认为false。4,dataType服务器返回的数据类型。6,error

  9. AJAX-Cache:一款好用的Ajax缓存插件

    原文链接AJAX-Cache是什么Ajax是前端开发必不可少的数据获取手段,在频繁的异步请求业务中,我们往往需要利用“缓存”提升界面响应速度,减少网络资源占用。AJAX-Cache是一款jQuery缓存插件,可以为$.ajax()方法扩展缓存功能。

  10. jsf – Ajax update/render在已渲染属性的组件上不起作用

    我试图ajax更新一个有条件渲染的组件。我可以确保#{user}实际上是可用的。这是怎么引起的,我该如何解决呢?必须始终在ajax可以重新呈现之前呈现组件。Ajax正在使用JavaScriptdocument.getElementById()来查找需要更新的组件。但是如果JSF没有将组件放在第一位,那么JavaScript找不到要更新的内容。解决方案是简单地引用总是渲染的父组件。

返回
顶部