Javascript $.GET()没有';t返回值
我有这样的剧本Javascript $.GET()没有';t返回值,javascript,jquery,Javascript,Jquery,我有这样的剧本 function getContactLastDateOfDeparture(contactId) { $.get( '/transaction/ajaxGetContactLastDateOfDeparture/'+contactId, '', function(data){ alert(data); return data; }, 'j
function getContactLastDateOfDeparture(contactId) {
$.get(
'/transaction/ajaxGetContactLastDateOfDeparture/'+contactId,
'',
function(data){
alert(data);
return data;
},
'json'
);
}
我使用console.log(getContactLastDateOfDeparture(2144))
测试上面的脚本,当处于警报阶段时,它输出字符串2011-12-06
,但当阶段返回时,它输出未定义的
如何返回应该是2011-12-06
?您不能在AJAX函数中真正执行返回,因为它是异步的。如果要传递值,最好在末尾调用另一个函数
要执行此操作,可以按如下方式传递:
function getCall(param, callback) {
$.get('url', function (data) { alert(data); callback(data); }, 'json');
}
在AJAX函数中不能真正执行返回,因为它是异步的。如果要传递值,最好在末尾调用另一个函数
要执行此操作,可以按如下方式传递:
function getCall(param, callback) {
$.get('url', function (data) { alert(data); callback(data); }, 'json');
}
格斯
第一个参数是有效处理页面(html、asp、php等)的url
编辑(被否决后):
在您的情况下,有效的url应该是:
$.get('url', function (data) {
alert(data);
});
您的url“/transaction/ajaxGetContactLastDateOfDeparture/”+联系人ID将被删除
不是“计算”
但是,
'/transaction/ajaxGetContactLastDateOfDeparture/getContactID.php?contactID='+contactId
会的
然后,处理文件(.asp、.php等)将返回所需的值
期待。Gus
第一个参数是有效处理页面(html、asp、php等)的url
编辑(被否决后):
在您的情况下,有效的url应该是:
$.get('url', function (data) {
alert(data);
});
您的url“/transaction/ajaxGetContactLastDateOfDeparture/”+联系人ID将被删除
不是“计算”
但是,
'/transaction/ajaxGetContactLastDateOfDeparture/getContactID.php?contactID='+contactId
会的
然后,处理文件(.asp、.php等)将返回所需的值
应为。如果确实希望函数从ajax调用返回值,可以使用而不是$.get(实质上$.get基于$.ajax,带有一些简化的参数);$。ajax有一个参数“async”,您可以将其设置为false以使ajax调用同步
重要信息-不建议在ajax中使用同步调用,因为它会冻结js执行,并可能导致意外问题。如果确实希望函数从ajax调用返回值,可以使用而不是$.get(基本上是$.get基于$.ajax,带有一些简化的参数);$。ajax有一个参数“async”,您可以将其设置为false以使ajax调用同步
重要信息-不建议在ajax中使用同步调用,因为它会冻结js执行,并可能导致意外问题。
您应该了解Ajax、异步行为和事件驱动编程。它不是那样工作的。
您应该了解Ajax、异步行为和事件驱动编程。它不是那样工作的。重复的@Alxandr在问题的细节上,我同意这是相同的。但是,如果他不知道解决办法,我可以看出它看起来是不一样的。我只是把它贴了出来,因为它比再次贴答案要快。当我在另一个问题中详细解释了这个问题时,我只是认为这可能会有所帮助。不要试图说hist GoogleFoo不是最新的或任何东西。你需要更具体地试图引起我们的注意。你的问题充其量只是模糊的@我认为问题很清楚。他给出了一个测试用例,并明确说明了问题所在和问题所在。仅仅因为你被否决并不意味着这是一个无效的问题。@Alxandr在问题的本质上是重复的,我同意这是相同的。但是,如果他不知道解决办法,我可以看出它看起来是不一样的。我只是把它贴了出来,因为它比再次贴答案要快。当我在另一个问题中详细解释了这个问题时,我只是认为这可能会有所帮助。不要试图说hist GoogleFoo不是最新的或任何东西。你需要更具体地试图引起我们的注意。你的问题充其量只是模糊的@我认为问题很清楚。他给出了一个测试用例,并明确说明了问题所在和问题所在。仅仅因为你被否决并不意味着这不是一个有效的问题。提到这一点甚至是一种可能性就像给一个孩子玩剑,并告诉他要小心。不了解异步工作原理的人不应该知道这种可能性,这对他们来说似乎是一个简单的解决方案,而他们真正需要的是掌握事件驱动编程的工作原理,并重新构造代码以适应该模型。在单线程环境中执行同步操作是完全错误的。我同意,而且我永远不会建议任何人这样做,因此这是旁注。我只是直接回答了这个问题。提到这一点,甚至有可能就像给一个孩子玩剑一样,告诉他要小心。不了解异步工作原理的人不应该知道这种可能性,这对他们来说似乎是一个简单的解决方案,而他们真正需要的是掌握事件驱动编程的工作原理,并重新构造代码以适应该模型。在单线程环境中执行同步操作是完全错误的。我同意,而且我永远不会建议任何人这样做,因此这是旁注。我只是直接回答了这个问题。它是有效的url,AJAX是有效的。它不仅仅返回值。请看我上面的问题。不,这不是一个有效的url。url以文件扩展名(.html、.asp、.php等)终止。在这种情况下,您希望我们相信您的参数“contactId”是一个文件名吗?我将编辑我的答案,以便你能理解我的意思;尽管Ktash已经指出了和我一样的事情。@zequinha bsb这可能是一个完全有效的URL,原因有很多。首先,它可以是一个目录,其中将使用默认页面。其次,它可以使用重定向来重定向到页面。最后,它可能是一个没有扩展名的文件,服务器知道如何处理和提供服务。URL不是这里真正的问题。@zequinha bsb URL是100%有效的。您不需要.php
、.html
或任何