为了账号安全,请及时绑定邮箱和手机立即绑定

xhr 或 jQuery ajax, Post 请求如何获得 303 状态的返回结果

xhr 或 jQuery ajax, Post 请求如何获得 303 状态的返回结果

桃花长相依 2019-03-19 22:19:03
问题网站http://www.xingk.cc/forum.php...需注册,比较麻烦,下面给一个临时账号账号:爱玩屎的阿拉蕾密码:Av123456!问题描述论坛的网盘地址被加了跳转链,而且是随机生成的,跳转链是使用 303 重定向到网盘。需求结果有办法能够获得这个跳转链返回的 303 状态的重定向结果吗?jQuery 的 success好像只有在stats为200才会执行。xhr 无论是 onreadystatechange 还是 error 还是 onload,都没有得到重定向的结果。测试代码jQuery    var jq=document.createElement("script");    jq.src="http://cdn.staticfile.org/jquery/2.1.4/jquery.min.js";    document.body.appendChild(jq);        function getQueryString(name,url) {      url=(url&&url.match(/\?.*/).toString())||location.search;        var reg = new RegExp("(?:^|&)(" + name + ")=([^&]*)(?:&|$)", "i");        var str = url.substr(1).match(reg);        if (str != null) return unescape(str[2]);        return null;    }    $('a[href*="linkFilter.php"]').each(function(){$.ajax({url:"linkFilter.php",type:'post',traditional:true,data:this.href.replace(/.+\?(.+)/,'$1')+"&mod=decode",contentType:"application/x-www-form-urlencoded",processData: false,success:function(e,s,t,d){console.log(s,t,e);},})})原生 xhrvar url=document.querySelector('a[href*="linkFilter.php"]').href;        function getQueryString(name,url) {          url=(url&&url.match(/\?.*/).toString())||location.search;            var reg = new RegExp("(?:^|&)(" + name + ")=([^&]*)(?:&|$)", "i");            var str = url.substr(1).match(reg);            if (str != null) return unescape(str[2]);            return null;        }var xhr= new XMLHttpRequest();    //异步接受响应    xhr.onreadystatechange = function(e){console.log(xhr.readyState, xhr.status, e, xhr.responseURL);    }xhr.onload= function(e){console.log('load', e, xhr.responseURL);}xhr.onerror = function(e){console.log('error', e, xhr.responseURL);}    //发送请求    xhr.open('post','linkFilter.php',true);xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded;charset=UTF-8');xhr.send("mod=decode&"+getQueryString('code',url)+"&"+getQueryString('tk',url));
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

原生的XMLHttpRequest可以利用 request.readyState 和 request.status进行判断。


查看完整回答
反对 回复 2019-04-07
?
慕沐林林

TA贡献2016条经验 获得超9个赞

既然要 success 里找不到你要的东西,为啥不试试 fail 或者 complete 呢


查看完整回答
反对 回复 2019-04-07
  • 3 回答
  • 0 关注
  • 1012 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信