Javascript jQueryAjax忽略url

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

我有一个函数tryGetTicket,它必须在我的loginUrl中调用ajax请求。但当我调用此函数时,它忽略我的ULR并发送get请求,而不使用loginUrl,也就是说,我希望在实际情况下发送什么请求。怎么了

$(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
调用中,否则它仍然无法工作