jQuery Ajax表单-如何获取重定向URL?

我正在使用ajax表单jquery插件通过ajax提交表单(在对话框中)。

这工作正常,然后我从服务器返回html响应。响应来自我无法修改的标准后重定向php页面。

有没有一种方法可以使用jquery(在ajax回调内部)获取此重定向的URL(最终的GET位置)?

  $j('span.sfAutocomplete a').click(function(e){

var url = this.href;

var $dialog = $j('<div id="ajaxDialog"></div>').appendTo('body')

.load(

url,

'sfAutocomplete=true',

function (responseText, textStatus, XMLHttpRequest) {

$dialog.dialog({ autoOpen: true });

//

// Ajax submit

//

$j('#ajaxDialog form').submit(function() {

function showResponse(responseText, statusText) {

// how to get the redirect url ?

}

$j(this).ajaxSubmit({

success: showResponse

});

return false;

});

}

);

return false;

});

回答:

我没有使用过您使用的插件,但是如果您使用jQuery

Ajax命令,则会收到XMLHttpRequest对象作为complete事件的参数。然后,您可以从返回的HTTP标头中获取发布URL。尝试以下方法:

$.ajax({

url:'your.url',

data:'your data',

complete: function(xhr,textstatus) {

// xhr.responseText contains the response from the server

var allheaders = xhr.getAllResponseHeaders();

// this will get all headers as a string - if you want them as an object...

var eachheader = allheaders.split('\n');

var headers = {};

for(i = 0; i < eachheader.length; i++) {

if ($.trim(eachheader[i]) !== '') {

headersplit = eachheader[i].split(':');

headers[headersplit[0]]=$.trim(headersplit[1]);

}

}

}

});

此代码是从此线程复制的。

以上是 jQuery Ajax表单-如何获取重定向URL? 的全部内容, 来源链接: utcz.com/qa/415176.html

回到顶部