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

问题网站
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);

},

})

})

https://img4.mukewang.com/5ca98e6d0001f8b007450251.jpg


原生 xhr


var 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));

https://img.mukewang.com/5ca98e7000017c1108000282.jpg

桃花长相依
浏览 1013回答 3
3回答

慕标5832272

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

慕沐林林

既然要 success 里找不到你要的东西,为啥不试试 fail 或者 complete 呢
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript