$. get()没有返回值
$.GET() didn't return value
我有这样的脚本。
function getContactLastDateOfDeparture(contactId) {
$.get(
'/transaction/ajaxGetContactLastDateOfDeparture/'+contactId,
'',
function(data){
alert(data);
return data;
},
'json'
);
}
我用console.log(getContactLastDateOfDeparture(2144))
测试上面的脚本,当在警报阶段它输出字符串2011-12-06
,但当return
阶段它输出undefined
如何使返回应该是2011-12-06
?
您不能在AJAX函数中真正执行返回,因为它是异步的。如果希望传递该值,最好在最后调用另一个函数。
要做到这一点,你可以像这样传递它:
function getCall(param, callback) {
$.get('url', function (data) { alert(data); callback(data); }, 'json');
}
如果您确实希望函数从ajax调用返回值,则可以使用$。Ajax代替$。得到(本质上是$。Get基于$。Ajax与一些简化的参数);美元。Ajax有一个参数"async",您可以将其设置为false以使Ajax调用同步。
重要-不建议使用ajax的同步调用,因为它会冻结js的执行,并可能导致意想不到的问题。
http://fixingthesejquery.com/images/ajax101.png
您应该阅读有关Ajax、异步行为和事件驱动编程的内容。这是行不通的
Gus,
第一个参数是一个url,指向一个有效的处理页面(html、asp、php等)。
编辑(被否决后):
一个有效的url,在你的例子中,应该是:
$.get('url', function (data) {
alert(data);
});
你的url '/transaction/ajaxGetContactLastDateOfDeparture/'+contactId将不是"计算"
然而,'/transaction/ajaxGetContactLastDateOfDeparture/getContactID.php?contactID='+contactId
会!
您的处理文件(.asp, .php等)将返回您的值期待的。
相关文章:
- Javascript返回值只在循环中返回一次
- XMLHttpRequest未返回值-状态202
- 根据是否解析了 Promise 从函数返回值
- Angular,函数在(模型)工厂中返回值
- AngularJS错误:提供程序必须从$get工厂方法返回值
- 如何从客户端的数组中获取用户输入和返回值
- Javascript中带有返回值的嵌套函数
- 为变量分配多个nodejs导出返回值时出现问题
- 通过回调从onreadystatechange返回值
- 从Ajax函数返回值
- JavaScript生成器中收益率返回值的解析
- HTML如何根据javascript函数的返回值限制文本输入
- chrome.storage.sync.get未返回值-Angular服务
- 修复AngularJS错误:提供程序必须从$get工厂方法返回值
- 获取 jQuery get().done() 函数的返回值
- 如何检测是否从 parseInt(localStorageService.get('xxx'))返回值;
- jQuery或JavaScript-ajax-get方法的返回值的大小限制
- $. get()没有返回值
- ExtJS GET操作在FireFox中存储返回值500
- 从嵌套的$.get返回值