jquery中ajax如何返回值到上层函数的方法以及对于js处理json对象方法的记录

①在我们做前端js处理的时候我们经常会将一些公用的js方法封装起来,方便别的地方调用,但是我们要做的是需要将请求返回的值传递给调用者,这里我记录了在js中采用ajax方法获取后台数据并返回给调用者的方法,我们平时使用ajax的方法基本为如:

<span style="font-family:FangSong_GB2312;font-size:18px;">function AutoGetOpenid(){
	var personJson;
	$.ajax({
		url : "***.action",
		type : 'post',
		dataType : 'json',
		contentType : "application/x-www-form-urlencoded; charset=utf-8",

		data : {
			'code' : location.href.split('=')[1].split('&')[0]
		},
		success : function(data) {
			//返回获取到用户的信息,昵称、城市、openid、unionid、性别、头像地址等、、
		personJson = jQuery.parseJSON(data);

		},
		error : function() {

		}
	});
	 return personJson;
}</span>

但是返回获取到的personJson却是没有我们想要的值,其实追究其原因是因为ajax中存在同步执行和异步执行的两种方式,在不做任何抉择的时候ajax采用的是异步执行的方式,所以我们想将结果返回的时候我们需要将执行方式修改为同步执行即可:

<span style="font-family:FangSong_GB2312;font-size:18px;">function AutoGetOpenid(){
	var personJson;
	$.ajax({
		url : "***.action",
		type : 'post',
		dataType : 'json',
		contentType : "application/x-www-form-urlencoded; charset=utf-8",
	        <span style="color:#FF0000;">async:false,</span>
		data : {
			'code' : location.href.split('=')[1].split('&')[0]
		},
		success : function(data) {
			//返回获取到用户的信息,昵称、城市、openid、unionid、性别、头像地址等、、
                },
		error : function() {

		}
	});
	 return personJson;
}</span>

看上面代码的红色部分,只需要加上这一行代码就可以解决问题了;

②在①中我们获取到了返回值data,这是一个jsonobject的json对象,我们如何获取其中的属性对应的值呢?

personJson = jQuery.parseJSON(data);

alert(personJson.openid);

首先将数据对象话,然后通过object.key就可以获取到对象的属性值了 !

时间: 2024-08-11 03:38:05

jquery中ajax如何返回值到上层函数的方法以及对于js处理json对象方法的记录的相关文章

ajax返回值给上层函数的方法。

function load_val(callback){//定义一个回调函数 $.getJSON('test.php' , function(dat){ callback(data);//将返回结果当作参数返回 }); } load_val(function(data){ alert(data);//这里可以得到值 }); //否则的话你需要这样用同步ajax来实现了 function load_val2(){ var result; $.ajax({ dataType:'json', url

ajax返回值给上层函数

var UserModule = angular.module("UserModule", []); //用户收货地址服务 UserModule.factory("UserAddress", function ($http, $rootScope) { var AddressList = undefined; return { GetAddressList: function () { if (!AddressList) { $http.post("/ap

jquery中的get和post、ajax有关返回值的问题描述

一:前言 今天我就要离开公司回学校准备考试,在走之前,我自己做的一个模块测试除了一些小的bug.问题如下 我在往数据库中插入数据,首先要选择一级菜单,接着会更具一级菜单生成一级菜单的子目录,在选择日期.填完数据后进行保存操作.在点击保存时需要对新增的数据进行验证,就是根据一级目录的编号和日期来进行查询,如果有的话就要弹出一个提示框,告诉其其中已经有了改目录该日期的数据.在这里我就需要进行验证.但是我在用jquery.get方法来写时怎么都没有用.而此时我又快下班走人了,弄得我很烦躁,最后还是一个

Jquery ajax 得到返回值

1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步. 2.必须定义一个全局变量 var result = ""来保存返回值.否则得到的是undefined functionGetReturnValue(url, jsonText) { varresult =""; $.ajax({ type:"POST", url: url, data: jsonText, contentType:&q

(转)函数中使用 ajax 异步 同步 返回值错误 主函数显示返回值总是undefined -- ajax使用总结

如图检测到函数返回值总是a jQuery ajax 得到返回值 方案1:通过js回调函数获取返回值 方案2: 添加代码: async: false, 1.ajax默认是异步调用的,所以得到的返回值是空值,要得到值必须改成同步:async: false,//同步. 2.必须定义一个全局变量 var result = ""来保存返回值.否则得到的是undefined function GetReturnValue(url, jsonText) { var result = "&q

JQuery中$.ajax()方法参数详解

url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求. 如果需要发送同步请求,请将此选项

jQuery中$.ajax()详解(转)

JQuery中$.ajax()方法参数详解     url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如put和 delete也可以使用,但仅部分浏览器支持. timeout: 要求为Number类型的参数,设置请求超时时间(毫秒).此设置将覆盖$.ajaxSetup()方法的全局设 置. async:要求为Boolean类型的参数,默认设置为true,所有

通过Jquery中Ajax获取json文件数据

1. JSON(JavaScript Object Notation): javaScript对象表示法: 是存储和交换文本信息的语法,比xml更小,更快,更易解析. 2. JSON基本书写格式 : 名称/值对. 例如: "Student":"Tom" Json值可以是: 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true或者false) 数组(在方括号中) 对象(在花括号中) null  例如(对象):{"name":"to

jQuery中ajax的使用与缓存问题的解决方法

jQuery中ajax的使用与缓存问题的解决方法 1:GET访问 浏览器 认为 是等幂的就是 一个相同的URL 只有一个结果[相同是指 整个URL字符串完全匹配]所以 第二次访问的时候 如果 URL字符串没变化 浏览器是 直接拿出了第一次访问的结果 POST则 认为是一个 变动性 访问 (浏览器 认为 POST的提交 必定是 有改变的) 防止 GET 的 等幂 访问 就在URL后面加上 ?+new Date();,[总之就是使每次访问的URL字符串不一样的] 设计WEB页面的时候 也应该遵守这个