西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > 开发教程 > JavaScript教程 >

JQuery中使用Ajax赋值给全局变量失败异常的解决方法jqueryajax

时间:2016-02-03 14:41来源:未知 作者:好模板 点击:
我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来
我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢?
 
原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去,所以只要改成同步操作就行~
 
方法1:先设置同步在进行Ajax操作
 
1 //在全局或某个需要的函数内设置Ajax异步为false,也就是同步
2 $.ajaxSetup({
3 async :false});
4
5 //然后再进行你的Ajax操作
6 $.post(地址,参数,function(data, status){if(status =="success"){//赋值给全局变量}else{
7 alert("wrong");}});
方法2:直接用$.ajax
 
1 $.ajax({
2 type :"post",
3 url :地址,
4 data :"参数"+参数的值,
5 async :false,
6 success :function(data){//赋值给全局变量;}});
实例代码:
 
JQuery中使用Ajax赋值给全局变量失败异常的解决方法,jqueryajax
JQuery中使用Ajax赋值给全局变量失败异常的解决方法,jqueryajax
 
 
 
jquery ajax 在回调函数内 给变量赋值,为何返回不出去?那要怎处理
 
 
1 全局变量的作用域是全局性的,即在整个JavaScript程序中,全局变量处处都在。
2 而在函数内部声明的变量,只在函数内部起作用。这些变量是局部变量,作用域是局部性的;函数的参数也是局部性的,只在函数内部起作用。
 
ajax的返回的数据给JS全局变量赋值的问题
 
 
你这个js是可以的,如下的测试能正确弹出”Hello World”:
前端页面:
 
01 <body>
02 <input id="Text1" type="text" value="TestText" />
03 <input id="Button1" type="button" value="button" />
04 <script language="javascript">
05 $("#Text1").focus();
06 var str = "";
07 $(function ()
08 {
09 $.post("Handler1.ashx", { "flag": "test" }, function (data)
10 {
11 str = data;
12 });
13 });
14
15 $("#Button1").click(function ()
16 {
17 alert(str);
18 });
19 </script>
20 </body>
被请求页面Handler1.ashx.cs里:
 
1 public void ProcessRequest(HttpContext context)
2 {//确保只要被请求 就能输出值
3 context.Response.ContentType = "text/plain";
4 context.Response.Write("Hello World");
5 }
———————————–
估计是你的被请求页面.ashx输不出值,检查下这个页面的代码,比如context.Request.Params参数要求等,以确保一定能输出值。
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容