亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

ajax與302響應代碼測試

2019-11-20 21:51:36
字體:
來源:轉載
供稿:網友
在ajax請求中,如果服務器端的響應是302 Found,在ajax的回調函數中能夠獲取這個狀態碼嗎?能夠從Response Headers中得到Location的值進行重定向嗎?讓我們來一起看看實際情況。
使用jquery的$.ajax()發起ajax請求的javascript代碼如下:
復制代碼 代碼如下:

$.ajax({
    url: '/oauth/respond',
    type: 'post',
    data: data,
    complete: function(jqXHR){
        console.log(jqXHR.status);
    },
    error: function (xhr) {
        console.log(xhr.status);
    }
});

當服務器端返回302 Found的響應時,瀏覽器中的運行結果如下:
 

在ajax的complete()與error()回調函數中得到的狀態碼都是404,而不是302。

這是為什么呢?

在stackoverflow上找到了

復制代碼 代碼如下:

You can't handle redirects with XHR callbacks because the browser takes care of them automatically. You will only get back what at the redirected location.

原來,當服務器將302響應發給瀏覽器時,瀏覽器并不是直接進行ajax回調處理,而是先執行302重定向――從Response Headers中讀取Location信息,然后向Location中的Url發出請求,在收到這個請求的響應后才會進行ajax回調處理。大致流程如下:
jax -> browser -> server -> 302 -> browser(redirect) -> server -> browser -> ajax callback
而在我們的測試程序中,由于302返回的重定向URL在服務器上沒有相應的處理程序,所以在ajax回調函數中得到的是404狀態碼;如果存在對應的URL,得到的狀態碼就是200。
所以,如果你想在ajax請求中根據302響應通過location.href進行重定向是不可行的。

如何解決?

方法一
繼續用ajax,修改服務器端代碼,將原來的302響應改為json響應,比如下面的ASP.NET MVC示例代碼:

復制代碼 代碼如下:

return Json(new { status = 302, location = "/oauth/respond" });

ajax代碼稍作修改即可:
復制代碼 代碼如下:

$.ajax({
    url: '/oauth/respond',
    type: 'post',
    data: data,
    dataType: 'json',
    success: function (data) {
        if (data.status == 302) {
            location.href = data.location;
        }
    }
});

方法二
不用ajax,改用form。

復制代碼 代碼如下:

<form method="post" action="/oauth/respond">
</form>

以前沒研究透這個問題,踩了幾次坑。這次研究了一下,我想以后就會遠離這個坑了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美一区二区白浆黑人| 日韩免费电影在线观看| 国语自产偷拍精品视频偷| 国内精品美女av在线播放| 久久中文字幕视频| 日韩经典中文字幕| 国产日韩欧美在线观看| 日本一区二区三区在线播放| 国产成人精品网站| 欧美日韩福利在线观看| 97人洗澡人人免费公开视频碰碰碰| 国产最新精品视频| 国产一区二区欧美日韩| 亚洲精品免费在线视频| 亚洲性视频网址| 国产欧美在线视频| 成人性教育视频在线观看| 欧美巨大黑人极品精男| 日韩网站免费观看高清| 久久久久久91香蕉国产| 2019日本中文字幕| 亚洲a在线播放| 亚洲成人三级在线| 色综合天天综合网国产成人网| 欧美激情中文字幕在线| 亚洲一级黄色av| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩在线中文字幕| 日韩视频精品在线| 最新国产成人av网站网址麻豆| 国产精品久久av| 日韩精品在线观看一区| 久久免费成人精品视频| 精品无人区乱码1区2区3区在线| 热re99久久精品国产66热| 97超碰国产精品女人人人爽| 午夜精品一区二区三区在线| 国产精品女视频| 国产精品白丝jk喷水视频一区| 日韩欧美精品网址| 国产精品麻豆va在线播放| 色偷偷av亚洲男人的天堂| 久国内精品在线| 日韩av免费看网站| 日韩av成人在线| 国产精品69久久| 亚洲免费av电影| 亚洲日本aⅴ片在线观看香蕉| 国产视频久久网| 一夜七次郎国产精品亚洲| 欧美国产在线电影| 欧美日韩在线第一页| 欧美精品在线极品| 亚洲自拍另类欧美丝袜| 久热精品视频在线观看一区| 一区二区三区www| 久久久免费精品| 一区二区三区回区在观看免费视频| 中文字幕av一区二区三区谷原希美| 欧美性猛交xxxx乱大交蜜桃| 亚洲精品久久久久久久久久久| 国产精品综合不卡av| 在线中文字幕日韩| 色樱桃影院亚洲精品影院| 久久久久久香蕉网| 欧美夫妻性视频| 成人亚洲综合色就1024| 清纯唯美日韩制服另类| 日韩av成人在线观看| 欧美俄罗斯性视频| 亚洲第一页自拍| 欧美在线免费看| 欧美老女人bb| 在线播放国产一区中文字幕剧情欧美| 91精品国产亚洲| 欧美日韩国产丝袜美女| 国产91亚洲精品| 亚洲女人天堂av| 国产亚洲成精品久久| 奇米成人av国产一区二区三区| 中文字幕一区日韩电影| 亚洲人成欧美中文字幕| 欧美午夜视频在线观看| 亚洲另类欧美自拍| 欧美一区在线直播| 日韩国产精品视频| 日韩精品中文在线观看| 91国内精品久久| 国产精品美女视频网站| 国产精品久久久久久久久久久久久| 91高清免费视频| 国产亚洲精品久久久久久牛牛| 国产精品色悠悠| 国产女精品视频网站免费| 国产一区二区三区在线播放免费观看| 91久久精品视频| 亚洲一区二区三区四区视频| www国产91| 国产精品一久久香蕉国产线看观看| 97国产真实伦对白精彩视频8| 日韩69视频在线观看| 2019国产精品自在线拍国产不卡| 国产一区二区三区18| 久久视频这里只有精品| 欧美综合国产精品久久丁香| 成人在线中文字幕| 亚洲一区二区三区视频| 97国产精品视频人人做人人爱| 国产精品永久免费观看| 中文字幕国产亚洲2019| 一夜七次郎国产精品亚洲| 一区二区亚洲欧洲国产日韩| 国产成人精品久久久| 欧美在线观看www| 国产精品美女主播在线观看纯欲| 国产一区二区三区四区福利| 97久久精品国产| 欧美亚洲另类视频| 成人xxxxx| www.亚洲天堂| 国产欧美日韩专区发布| 国产精品欧美日韩| 日韩在线视频免费观看高清中文| 亚洲成成品网站| 精品国产鲁一鲁一区二区张丽| 夜夜嗨av一区二区三区四区| 亚洲国产精久久久久久久| 日韩精品免费视频| 久久天堂电影网| 91精品国产高清久久久久久久久| 欧美成人激情视频免费观看| 国产在线观看91精品一区| 热久久99这里有精品| 91精品久久久久久久久久久久久久| 亚洲国语精品自产拍在线观看| 久久深夜福利免费观看| 国产精品免费一区二区三区都可以| 亚洲午夜av久久乱码| 久久免费视频在线观看| 国产精品小说在线| 欧美电影在线播放| 亚洲va国产va天堂va久久| 亚洲第一区在线| 欧美—级a级欧美特级ar全黄| 91精品久久久久久久久| 久久伊人精品一区二区三区| 色婷婷综合久久久久| 日韩有码在线观看| 国产成人福利夜色影视| 国产自产女人91一区在线观看| 亚洲成人动漫在线播放| 欧美大码xxxx| 成人免费视频在线观看超级碰| 亚洲第一精品自拍| 亚洲精品v欧美精品v日韩精品| 中文日韩在线观看| 国产精品 欧美在线| 亚洲精品国产综合区久久久久久久| 日韩在线资源网| 亚洲精品永久免费精品| 亚洲最大的av网站| 久久五月天综合| 97香蕉久久超级碰碰高清版| 久久国产精品久久久久久|