Javascript jQueryAjax忽略url
我有一个函数tryGetTicket,它必须在我的loginUrl中调用ajax请求。但当我调用此函数时,它忽略我的ULR并发送get请求,而不使用loginUrl,也就是说,我希望在实际情况下发送什么请求。怎么了Javascript jQueryAjax忽略url,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个函数tryGetTicket,它必须在我的loginUrl中调用ajax请求。但当我调用此函数时,它忽略我的ULR并发送get请求,而不使用loginUrl,也就是说,我希望在实际情况下发送什么请求。怎么了 $(function(){ var tryGetTicket = function (loginUrl, param) { var ticket = null; $.aj
$(function(){
var tryGetTicket =
function (loginUrl, param)
{
var ticket = null;
$.ajax({
url: loginUrl,
dataType: "json",
data: param,
success: function( response ) {
var result = null;
//do something
ticket = result;
}
});
return ticket;
}
$("#importDialog").click (function(event) {
event.preventDefault();
var alfTicket = getCookie("alf_ticket");
var ticket = tryGetTicket("/sys/login", $.param({"alf_ticket" : alfTicket}));
///...
}
});
回答: 它工作正常。谢谢你的建议
$(function(){
var tryGetTicket =
function (loginUrl, param, callback)
{
var ticket = null;
$.ajax({
url: loginUrl,
dataType: "json",
data: param,
success: function( response ) {
var result = null;
//do something
ticket = result;
callback(ticket);
}
});
}
$("#importDialog").click (function(event) {
event.preventDefault();
var alfTicket = getCookie("alf_ticket");
var ticket =
tryGetTicket("/sys/login",
$.param({"alf_ticket" : alfTicket}),
function(){
///...
});
}
});
您的
tryGetTicket
几乎总是返回null
,因为$.ajax
调用是异步的
没有tiket
和result
变量
您如何检查实际调用了哪个URL?可能是因为
tiket
typoP
AJAX调用也是异步的(这就是第一个A的用途),因此您可以在success函数中得到结果,并在那里使用它做一些事情
因此,在单击函数中,像现在一样调用tryGetTicket,但将所有//…
内容移动到tryGetTicket的success函数中,或者创建一个新函数并从该success函数中调用它。尝试此函数
var Path = "http://example.com";
现在在url路径中添加此变量,如
url: Path+loginUrl,
它必须是相对路径Yes..r为所有代码库维护单域权限..。除非将
async:false
添加到$.ajax
调用中,否则它仍然无法工作