当前位置: 首页 > 面试题库 >

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

越心水
2023-03-14
问题内容

我正在使用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]);
        }
    }
  }
});

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



 类似资料:
  • 问题内容: 在Python中,我使用urllib2打开一个URL。该URL重定向到另一个URL,该URL重定向到另一个URL。 我希望在每次重定向后打印出网址。 例如 -> =重定向到 A-> B-> C-> D 我想打印B,C和D的URL(A是已知的,因为它是起始URL)。 问题答案: 最好的方法可能是继承。深入Python的重定向一章可能会有所帮助。

  • 问题内容: 如果我有这样的表格: 如何提交而不通过JavaScript / Jquery重定向到另一个视图?我从StackOverflow阅读了很多答案,但是所有这些答案都将我重定向到POST函数返回的视图。 问题答案: 为了实现您想要的,您需要使用jquery ajax,如下所示: 更新:( 基于下面的评论) 试试这个: UPDATE 2 (OP添加了此部分,因为这是他的最终解决方案) 这完美无

  • 我有一个页面“/order/new”,它包括两个客户及其地址的下拉菜单和一个重定向选择要添加到订单中的产品的按钮,我在一个数组中获得产品,并将该数组传递给“/order/new”。但是当我重定向时,我没有获得选定的客户及其地址。我将按顺序添加的产品保存在全局数组hh中,它从ajax获得数据 我想在添加产品数组后获取客户及其地址 我的ajax代码: “/new/order”得我得ejs:

  • 我正在尝试使用JQuery在Ajax中向请求添加头。 以下是代码:- 然后我使用了要求(要求是chrome火狐插件,我们可以手动添加一个标题到请求)。 手动添加标题后:- 在这两个pics请求头中,“ACCESS-CONTROL-request-HEADERS”中都有x-auth-token,但第二个pic中有“x-auth-token”头和头值,而第一个pic中没有。 所以我的问题是如何使用JQ

  • 问题内容: 有时我的URL会重定向到新页面,因此我想获取新页面的URL。 这是我的代码: 输出为: stackoverflow.com/questions/88326/does-elmah-handle-caught-exceptions-as- well 它对于网站效果很好,但是对于sears.com网站却无法正常工作。 如果我们输入URL打击: 输出仍然是: http://www.sears.

  • 问题内容: 我正在尝试通过使用nodejs request模块将我重定向到另一个页面的URL 。 梳理文档后,我找不到任何可以让我在重定向后检索网址的内容。 我的代码如下: 问题答案: 有两种非常简单的方法来获取重定向链中的最后一个URL。 uri是一个对象。uri.href包含带有查询参数的URL作为字符串。 该代码来自请求创建者对github问题的评论:https : //github.com