异步请求取得json数据

一、异步请求

在之前我们请求数据的时候都是整个页面全部刷新了一次,也就是每次请求都会重新请求所有的资源。但是在很多时候不需要页面全部刷新,仅仅是需要页面的局部数据刷新即可,此时需要发送异步请求来实现这种局部数据刷新的要求,异步请求简称 Ajax(Asynchronous Javascript And XML),在之前一般使用js 发送异步请求,请求的数据一般是xml,但是现在 json 出现之后就不使用xml 做为数据传输格式标准了。使用jQuery 发送异步请求,jq中的异步请求发送有很多方式,常见的方式如下:

1、方式一

$.get( //发送一个get 请求

   "test.cgi",//请求的地址

   {name: "John", time:"2pm" }, //传递服务端的数据

  function(data){ //回调函数,当请求成功之后,会自动调用该函数,data 服务端返回给客户端数据

  alert("Data Loaded: " + data);  },

"json"); //表示请求的数据格式是json格式

<script type="text/javascript" src="js/jquery.min.js"></script>

<Script type="text/javascript" src="js/login.js"></script>

</head>

<body>

<a href="javascript:void(0)">取得一个雇员信息</a>

$(function(){

  // 为超链接绑定事件,点击之后会发送请求

  $("a").click(function(){  //发送请求

  $.get(

  "emp/get",

  {"id":7788}, function(data){

  lalert("服务器端返回的数据是:"+data);  },

"json")  })})

2、方式二

$.getJSON(//发送一个get 请求,但是只接受 json 格式的响应数据
  "test.js",
  { name: "John" time: "2pm" }
  function (json) {
    alert("JSON Data:" + json.users [3].name);
})
$(function(){
  // 为超链接绑定事件,点击之后会发送请求
  $("a").click(function(){
  // 发送请求
  $.getJSON(
    "emp/get",
    {"id":7788},
    function(data){
      alert("服务器端返回的数据是:"+data);
     })  })})

使用getJSON 方式,默认取得数据就是json数据,不需要明确指定出来。 如果客户端指定了要取得 json 数据则服务器端必须返回的值也是json格式的字符串数据。

4、方式三

$.ajax({
    //发送一个请求
    type:"POST", //指定请求类型
    url:"some.php", //请求地址
    data: "name=John&location=Boston", //传递的数据
    dataType:"json", //指定接收的数据类型(需要服务器端传递的数据类型)
    async: false, // 实现在请求没有完全处理之前锁定浏览器,不做后面的操作
    Success: function(msg){ //回调函数
    alert ( "Data Saved: " + msg );
    // 其他代码
});
$(function() {
    // 为超链接绑定事件,点击之后会发送请求
    var emp;
    $("a").click(function(){
    //发送请求
        $.ajax({
            type:"post",
            url:"emp/get",
            data:"id=7788",
            dataType:"json",
            success:function(data){
            emp=data;
        })
    alert(emp.ename);
    })
})                    

此时出现了emp 没有 ename 属性,原因是先执行了“alert(emp.ename)”代码请求才处理完毕,应该要求先把请求处理完毕之后再访问 emp.ename 才可以实现正确的操作,那么应该让请求同步(现在是异步的)

指定请求同步

$(function(){
    //为超链接绑定事件,点击之后会发送请求
    var emp;
    $("a").click(function(){
    // 发送请求
        $.ajax({
            type:"post", url:"emp/get",
            data:"id=7788",
            dataType:"json",
            async:false, //锁定浏览器,只有请求处理完毕之后(回调函数调用完毕之后)才能执行后面的代码
            success: function(data) {
                emp=data;}
            })
    alert(emp.ename);
    })
})            

原文地址:https://www.cnblogs.com/whymoney1000/p/10792454.html

时间: 2024-10-16 16:32:27

异步请求取得json数据的相关文章

【Spring学习笔记-MVC-5】利用spring MVC框架,实现ajax异步请求以及json数据的返回

作者:ssslinppp      时间:2015年5月26日 15:32:51 1. 摘要 本文讲解如何利用spring MVC框架,实现ajax异步请求以及json数据的返回. Spring MVC与json参考文章:[spring学习笔记-mvc-3]返回json数据-方式1  和 [spring学习笔记-mvc-4]返回json数据-方式2. 使用到的技术主要如下: Ajax:使用JQuery 提供的ajax:==>需要引入jquery.min.js文件: Spring MVC: Jso

异步请求(删除json数据)

异步请求(删除json数据) 删除数据库信息, 同时页面对应的样式也随之删除 Demo: 删除雇员信息1.在控制层定义删除的方法 //删除数据 public void jsonRemove(HttpServletRequest req,HttpServletResponse resp) throws Exception { //获取要删除的雇员的编号 Integer empno = Integer.valueOf(req.getParameter("id")); //调用业务层的删除方

异步请求(获取json数据)

异步请求 不使用异步请求的时候,请求数据都是整个页面全部刷新一次,这样每次请求都会重新请求所有的资源. 很多时候不需要页面全部刷新, 只需要页面的局部数据刷新即可, 此时就需要发送异步请求来实现局部数据刷新的请求 异步请求简称 Ajax (Asynchronous Javascript And XML) 以前 js 发送异步请求数据, 一般是xml, 现在是json了 Demo: 使用JQ发送 异步请求方式一html: <a href="javascript:void(0)"&g

异步请求(解析json数据)

将 json 数据显示到页面 需要借助 js 对 dom 的操作功能将数据生成到 html 页面 Demo: 查询一个雇员的信息html: 1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC"-//W3C//DTD HTML 4.01 Tran

android通过httpClient请求获取JSON数据并且解析

android通过httpClient请求获取JSON数据并且解析:http://www.cnblogs.com/gzggyy/archive/2013/05/08/3066288.html Android--使用Http向服务器发送请求并取得返回结果,下载图片:http://www.2cto.com/kf/201307/229489.html Android系列之网络(一)----使用HttpClient发送HTTP请求(通过get方法获取数据):http://blog.csdn.net/he

swift http请求返回json数据并解析

1 AppDelegate.swift // // AppDelegate.swift // QQDemo // // Created by 赵超 on 14-6-21. // Copyright (c) 2014年 赵超. All rights reserved. // import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? fun

shiro异步请求返回JSON响应

shiro异步请求返回JSON响应 需求1:当shiro请求资源,但是没有进行认证时,默认是进行重定向,现在需要返回JSON响应.注意异步请求,服务器重定向后,ajax拿到的是浏览器重定向后的到的页面源码. 解决2: 自定义FormAuthenticationFilter.覆盖onAccessDenied方法.返回JSON字符串.并将自定义的过滤器添加到ShiroFilterFactoryBean,键的名称为authc. 需求2:ShiroFilterFactoryBean用注解时,过滤的url

Nginx下HTML页面POST请求静态JSON数据返回405状态

在浏览器访问HTML页面,发现一些静态JSON数据没有显示,F12查看,如下图所示: 可以看到请求方式为POST 将请求链接复制在浏览器地址栏访问,可以正常请求到数据 F12查看,可以看到请求方式为GET,状态码为200 可知问题为:Nginx下HTML页面POST请求静态JSON数据返回405状态,但用GET请求则正常返回数据. 百度后,有说,Apache.IIS.Nginx等绝大多数Web服务器,都不允许静态文件响应POST请求. 下面进行测试: 系统为CentOS7.5,Nginx(版本:

IOS - 网络(HTTP请求、同步请求、异步请求、JSON解析数据)

1 // 2 // ViewController.m 3 // IOS_0129_HTTP请求 4 // 5 // Created by ma c on 16/1/29. 6 // Copyright © 2016年 博文科技. All rights reserved. 7 // 8 9 #import "ViewController.h" 10 #import "MBProgressHUD+MJ.h" 11 12 @interface ViewController