相关疑难解决方法(0)

Ajax同步回调

我在本地文件夹中有一个pageTest.html,这个页面调用了一个service.ashx?i = ...(返回值param通过递增+1),后面跟着Ajax代码:

.
.
getIncr: function(parameters, success){
       $.ajax({
               async: false, 
               type: methodType,
               url: getTarget,
               data: "n="+parameters,
               dataType:"jsonp",
               success: success
             });
    }
.
.
Run Code Online (Sandbox Code Playgroud)

html页面调用此函数m次(使用脚本..):

  .    
  var start = function(){
  .
  .
  var val = 0;
  .      
  .
  for(i=0; i<m; i++)
  {
      Foo.getIncr(val, function(returned_n){
          val = returned_n;
      });

  }

};
Run Code Online (Sandbox Code Playgroud)

在页面加载期间,调用在"异步模式"下执行,但我在Ajax中设置" async:false ".我读到了这个问题,并找到了原因,即如果有不同的域,Ajax无法同步从page.html调用service.ashx.是否有一个解决方案在page.html中执行同步调用到该service.ashx(在不同的域中)?

javascript ajax jquery callback synchronous

3
推荐指数
1
解决办法
7290
查看次数

这是JavaScript/JQuery中的范围问题吗?

可能重复:在它之外使用ajax respone是否可行

我创建了以下JavaScript例程,该例程转到WCF oData服务并获取一些数据.在success元素中,我将结果输入结果变量并提醒它们 - 我看到有返回的对象.当我在ajax调用之外运行第二个警报并且在返回结果之前,结果变量是"未定义".

谁能告诉我哪里出错了?

function retrieveJsonpODataSet(baseUrl, query)
{
  var oDataUrl = baseUrl + "?$format=json&$callback=?";
  var results;

  $.ajax(
  {
    url: oDataUrl,
    contentType: 'application/json; charset=utf-8',
    type: 'GET',
    dataType: 'jsonp',
    async: false,
    success: 
      function (data, textStatus, xhr) 
      {
          results = data.d;
          alert(results);  // This shows the results
      },
    error: 
      function (xhr, textStatus, errorThrown) 
      { 
          alert("Query failed.\n\n" + oDataUrl + "\n\n" + errorThrown);
          results = null;
      }
  });
  alert(results);  // This shows "undefined"
  return results;
}
Run Code Online (Sandbox Code Playgroud)

请忽略查询参数 - …

javascript jquery

3
推荐指数
2
解决办法
186
查看次数

标签 统计

javascript ×2

jquery ×2

ajax ×1

callback ×1

synchronous ×1