JavaScript获取并保存http请求头信息

JavaScript013

JavaScript获取并保存http请求头信息,第1张

// ajax 对象

function ajaxObject() {

    var xmlHttp

    try {

        // Firefox, Opera 8.0+, Safari

        xmlHttp = new XMLHttpRequest()

        } 

    catch (e) {

        // Internet Explorer

        try {

             xmlHttp = new ActiveXObject("Msxml2.XMLHTTP")

            } catch (e) {

            try {

                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")

            } catch (e) {

             alert("您的浏览器不支持AJAX!")

             return false

            }

        }

}

    return xmlHttp

}

// ajax post请求:

function ajaxPost ( url , data , fnSucceed , fnFail , fnLoading ) {

    var ajax = ajaxObject()

    ajax.open( "post" , url , true )

    ajax.setRequestHeader( "Content-Type" , "application/x-www-form-urlencoded" )

    ajax.onreadystatechange = function () {

        if( ajax.readyState == 4 ) {

            if( ajax.status == 200 ) {

                fnSucceed( ajax.responseText )

            }

            else {

                fnFail( "HTTP请求错误!错误码:"+ajax.status )

            }

        }

        else {

            fnLoading()

        }

    }

    ajax.send( data )

}

HTTP协议中的 Authorization 请求消息头含有服务器用于验证用户代理身份的凭证,通常会在服务器返回 401 Unauthorized 状态码以及 WWW-Authenticate 消息头之后在后续请求中发送此消息头。

格式是Basic字符串+空格+ 用户名:密码 的Base64编码。

将凭证<credentials>部分进行Base64编码,然后再拼接字符串'Basic ',就可以生成基础验证方案。

因为DOMString 是16位编码的字符串,如果有字符超出了8位ASCII编码的字符范围时,在大多数的浏览器中对Unicode字符串调用 window.btoa将会造成一个 Character Out Of Range 的异常。

所以下列方法将UTF-16的 DOMStrin 转码为UTF-8的字符数组然后再编码。

将UTF-16的 DOMString 转码成UTF-8的字符串进行base64编码

使用 eoLinker 发送Basic Auth,输入用户名scar 密码123456

PS: eoLinker是一个很好用的接口管理网站,前端测试很方便

在JS Bin运行后,发现和eoLinker结果一致,成功!!

Authorization

Authentication

Javascript base64

Base64的编码与解码

Base64笔记-阮一峰老师

btoa方法

Next.js提供了一个API,可以让你访问原生的request对象:

```

import { getRequest } from 'next/dist/next-server/server/request'

export default function MyPage() {

const request = getRequest()

console.log(request)

// ...

}

```

你可以使用这个API来访问原生的request对象,以获取请求的信息,比如请求头、请求参数等。