重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
jquery 的getJson也是ajax请求,ajax请求默认是异步请求,就是不需要等数据返回,就会执行后面的数据。
创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站制作、网站设计、邵原网络推广、微信小程序、邵原网络营销、邵原企业策划、邵原品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联公司为所有大学生创业者提供邵原建站搭建服务,24小时服务热线:13518219792,官方网址:www.cdcxhl.com
所以,你外面的变量赋值,还没有等请求值返回,就已经执行了。
你只需要在getJSON请求之前,设置同步请求就行了:$.ajaxSettings.async = false;
【1】如果不声明jsonpCallback 方法,而且是dataType: "jsonp"请求的话jQuery会自动分配一个函数名,最终请求的URL还是会有一个callback参数的,加载完jsonp之后会自动回调方法。相当于隐式指定,只是jquery自动完成了。
function SendData()
{
$.ajax({
type: "get",
async: false,
url: "/home/ReturnJson",
dataType: "jsonp",
success: function(data){
alert(data.name);
},
error: function(){
alert('fail');
}
});
}
【2】如果有指定jsonpCallback ,回调就是你设置的方法。
function SendData() {
$.ajax({
type: "get",
async: false,
url: "/home/ReturnJson",
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback: "receive",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function (data) {
alert(data.name);
},
error: function () {
alert('fail');
}
});
}
function receive(data) {
alert(data.age);
}
使用jquery的ajax的jsonp类型跨域请求数据、始终获取不到返回数据是设置错误造成的,解决方法为:
1、创建基本的文件结构json_ajax.html和json_ajax.php,下载jquery.js。
2、如图分别编写json_ajax.html和json_ajax.php文件的编码。
3、分别在w(l)amp环境下运行json_ajax.html和json_ajax.php。
4、经过源码和运行结果的分析,知道了在json_ajax.html中设置了按钮的点击事件,点击按钮。
注意事项:
jQuery的核心特性可以总结为:具有独特的链式语法和短小清晰的多功能接口;具有高效灵活的css选择器,并且可对CSS选择器进行扩展;拥有便捷的插件扩展机制和丰富的插件。jQuery兼容各种主流浏览器,如IE 6.0+、FF 1.5+、Safari 2.0+、Opera 9.0+等。