การรับรองความถูกต้อง การอนุญาต และการป้องกันการฉ้อโกงเป็นอันดับแรกจาก API เว็บไซต์ | เอกสารประกอบ | โหนด js | เรามีจุดมุ่งหมายร่วมกันประการหนึ่ง นั่นคือ เพื่อมอบเครื่องมือทางการเงิน ทรัพยากร และข้อมูลที่คุณต้องการ... www.principal.com | สวัสดี เราชื่อ เดสโคป! เรากำลังสร้างบางสิ่งในพื้นที่การตรวจสอบสิทธิ์สำหรับนักพัฒนาแอปและ... เว็บไซต์ | เอกสารประกอบ | ชุมชน |
ที่ Buzzoid คุณสามารถซื้อผู้ติดตาม Instagram ได้อย่างรวดเร็ว ปลอดภัย และง่ายดายเพียงไม่กี่คลิก ประเมิน... buzzoid.com | ที่ Famety คุณสามารถเพิ่มผู้ติดตามบนโซเชียลมีเดียของคุณได้อย่างรวดเร็ว ปลอดภัย และง่ายดายเพียงไม่กี่คลิก... www.famety.com | ซื้อไลค์ Instagram poprey.com |
- มาเป็นสปอนเซอร์ | - มาเป็นสปอนเซอร์ | - มาเป็นสปอนเซอร์ |
ไคลเอนต์ HTTP ตามสัญญาสำหรับเบราว์เซอร์และ node.js
เว็บไซต์ • เอกสารประกอบ
multipart/form-data
และ x-www-form-urlencoded
ล่าสุด✔ | ล่าสุด✔ | ล่าสุด✔ | ล่าสุด✔ | ล่าสุด✔ |
ใช้ npm:
$ npm install axios
การใช้ซุ้ม:
$ bower install axios
การใช้เส้นด้าย:
$ yarn add axios
ใช้ pnpm:
$ pnpm add axios
เมื่อติดตั้งแพ็คเกจแล้ว คุณสามารถนำเข้าไลบรารีโดยใช้ import
หรือ require
วิธีการ:
import axios , { isCancel , AxiosError } from 'axios' ;
คุณยังสามารถใช้การส่งออกเริ่มต้นได้ เนื่องจากการส่งออกที่มีชื่อเป็นเพียงการส่งออกซ้ำจากโรงงาน Axios:
import axios from 'axios' ;
console . log ( axios . isCancel ( 'something' ) ) ;
หากคุณใช้ require
สำหรับการนำเข้า จะมีเฉพาะการส่งออกเริ่มต้นเท่านั้น :
const axios = require ( 'axios' ) ;
console . log ( axios . isCancel ( 'something' ) ) ;
สำหรับบันเดิลบางตัวและ ES6 linter's บางตัวคุณอาจต้องทำสิ่งต่อไปนี้:
import { default as axios } from 'axios' ;
สำหรับกรณีที่มีข้อผิดพลาดเกิดขึ้นขณะพยายามนำเข้าโมดูลไปยังสภาพแวดล้อมแบบกำหนดเองหรือแบบเดิม คุณสามารถลองนำเข้าแพ็คเกจโมดูลได้โดยตรง:
const axios = require ( 'axios/dist/browser/axios.cjs' ) ; // browser commonJS bundle (ES2017)
// const axios = require('axios/dist/node/axios.cjs'); // node commonJS bundle (ES2017)
การใช้ jsDelivr CDN (โมดูลเบราว์เซอร์ ES5 UMD):
< script src =" https://cdn.jsdelivr.net/npm/[email protected]/dist/axios.min.js " > </ script >
การใช้ unpkg CDN:
< script src =" https://unpkg.com/[email protected]/dist/axios.min.js " > </ script >
หมายเหตุ : การใช้งาน CommonJS
เพื่อให้ได้การพิมพ์ TypeScript (สำหรับ Intellisense / การเติมข้อความอัตโนมัติ) ในขณะที่ใช้การนำเข้า CommonJS ด้วยrequire()
ให้ใช้วิธีการต่อไปนี้:
import axios from 'axios' ;
//const axios = require('axios'); // legacy way
// Make a request for a user with a given ID
axios . get ( '/user?ID=12345' )
. then ( function ( response ) {
// handle success
console . log ( response ) ;
} )
. catch ( function ( error ) {
// handle error
console . log ( error ) ;
} )
. finally ( function ( ) {
// always executed
} ) ;
// Optionally the request above could also be done as
axios . get ( '/user' , {
params : {
ID : 12345
}
} )
. then ( function ( response ) {
console . log ( response ) ;
} )
. catch ( function ( error ) {
console . log ( error ) ;
} )
. finally ( function ( ) {
// always executed
} ) ;
// Want to use async/await? Add the `async` keyword to your outer function/method.
async function getUser ( ) {
try {
const response = await axios . get ( '/user?ID=12345' ) ;
console . log ( response ) ;
} catch ( error ) {
console . error ( error ) ;
}
}
หมายเหตุ :
async/await
เป็นส่วนหนึ่งของ ECMAScript 2017 และไม่รองรับใน Internet Explorer และเบราว์เซอร์รุ่นเก่า ดังนั้น โปรดใช้ด้วยความระมัดระวัง
ดำเนินการร้องขอ POST
axios . post ( '/user' , {
firstName : 'Fred' ,
lastName : 'Flintstone'
} )
. then ( function ( response ) {
console . log ( response ) ;
} )
. catch ( function ( error ) {
console . log ( error ) ;
} ) ;
ดำเนินการคำขอหลายรายการพร้อมกัน
function getUserAccount ( ) {
return axios . get ( '/user/12345' ) ;
}
function getUserPermissions ( ) {
return axios . get ( '/user/12345/permissions' ) ;
}
Promise . all ( [ getUserAccount ( ) , getUserPermissions ( ) ] )
. then ( function ( results ) {
const acct = results [ 0 ] ;
const perm = results [ 1 ] ;
} ) ;
คำขอสามารถทำได้โดยส่งการกำหนดค่าที่เกี่ยวข้องไปยัง axios
// Send a POST request
axios ( {
method : 'post' ,
url : '/user/12345' ,
data : {
firstName : 'Fred' ,
lastName : 'Flintstone'
}
} ) ;
// GET request for remote image in node.js
axios ( {
method : 'get' ,
url : 'https://bit.ly/2mTM3nY' ,
responseType : 'stream'
} )
. then ( function ( response ) {
response . data . pipe ( fs . createWriteStream ( 'ada_lovelace.jpg' ) )
} ) ;
// Send a GET request (default method)
axios ( '/user/12345' ) ;
เพื่อความสะดวก เราได้จัดเตรียมนามแฝงสำหรับวิธีการร้องขอทั่วไปทั้งหมด
เมื่อใช้วิธีการนามแฝง url
, method
และคุณสมบัติ data
ไม่จำเป็นต้องระบุในการกำหนดค่า
โปรดใช้ Promise.all
เพื่อแทนที่ฟังก์ชันด้านล่าง
ฟังก์ชั่นตัวช่วยสำหรับจัดการกับคำขอที่เกิดขึ้นพร้อมกัน
axios.all (ทำซ้ำได้) axios.spread (โทรกลับ)
คุณสามารถสร้างอินสแตนซ์ใหม่ของ axios ด้วยการกำหนดค่าแบบกำหนดเอง
const instance = axios . create ( {
baseURL : 'https://some-domain.com/api/' ,
timeout : 1000 ,
headers : { 'X-Custom-Header' : 'foobar' }
} ) ;
วิธีการอินสแตนซ์ที่ใช้ได้มีดังต่อไปนี้ การกำหนดค่าที่ระบุจะถูกรวมเข้ากับการกำหนดค่าอินสแตนซ์
นี่คือตัวเลือกการกำหนดค่าที่ใช้ได้สำหรับการร้องขอ จำเป็นต้องมี url
เท่านั้น คำขอจะมีค่าเริ่มต้นเป็น GET
หากไม่ได้ระบุ method
{
// `url` is the server URL that will be used for the request
url : '/user' ,
// `method` is the request method to be used when making the request
method : 'get' , // default
// `baseURL` will be prepended to `url` unless `url` is absolute.
// It can be convenient to set `baseURL` for an instance of axios to pass relative URLs
// to methods of that instance.
baseURL : 'https://some-domain.com/api/' ,
// `transformRequest` allows changes to the request data before it is sent to the server
// This is only applicable for request methods 'PUT', 'POST', 'PATCH' and 'DELETE'
// The last function in the array must return a string or an instance of Buffer, ArrayBuffer,
// FormData or Stream
// You may modify the headers object.
transformRequest : [ function ( data , headers ) {
// Do whatever you want to transform the data
return data ;
} ] ,
// `transformResponse` allows changes to the response data to be made before
// it is passed to then/catch
transformResponse : [ function ( data ) {
// Do whatever you want to transform the data
return data ;
} ] ,
// `headers` are custom headers to be sent
headers : { 'X-Requested-With' : 'XMLHttpRequest' } ,
// `params` are the URL parameters to be sent with the request
// Must be a plain object or a URLSearchParams object
params : {
ID : 12345
} ,
// `paramsSerializer` is an optional config that allows you to customize serializing `params`.
paramsSerializer : {
//Custom encoder function which sends key/value pairs in an iterative fashion.
encode ?: ( param : string ) : string => { /* Do custom operations here and return transformed string */ } ,
// Custom serializer function for the entire parameter. Allows user to mimic pre 1.x behaviour.
serialize ?: ( params : Record < string , any > , options ?: ParamsSerializerOptions ) ,
//Configuration for formatting array indexes in the params.
indexes : false // Three available options: (1) indexes: null (leads to no brackets), (2) (default) indexes: false (leads to empty brackets), (3) indexes: true (leads to brackets with indexes).
} ,
// `data` is the data to be sent as the request body
// Only applicable for request methods 'PUT', 'POST', 'DELETE , and 'PATCH'
// When no `transformRequest` is set, must be of one of the following types:
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - Browser only: FormData, File, Blob
// - Node only: Stream, Buffer, FormData (form-data package)
data : {
firstName : 'Fred'
} ,
// syntax alternative to send data into the body
// method post
// only the value is sent, not the key
data : 'Country=Brasil&City=Belo Horizonte' ,
// `timeout` specifies the number of milliseconds before the request times out.
// If the request takes longer than `timeout`, the request will be aborted.
timeout : 1000 , // default is `0` (no timeout)
// `withCredentials` indicates whether or not cross-site Access-Control requests
// should be made using credentials
withCredentials : false , // default
// `adapter` allows custom handling of requests which makes testing easier.
// Return a promise and supply a valid response (see lib/adapters/README.md)
adapter : function ( config ) {
/* ... */
} ,
// Also, you can set the name of the built-in adapter, or provide an array with their names
// to choose the first available in the environment
adapter : 'xhr' // 'fetch' | 'http' | ['xhr', 'http', 'fetch']
// `auth` indicates that HTTP Basic auth should be used, and supplies credentials.
// This will set an `Authorization` header, overwriting any existing
// `Authorization` custom headers you have set using `headers`.
// Please note that only HTTP Basic auth is configurable through this parameter.
// For Bearer tokens and such, use `Authorization` custom headers instead.
auth : {
username : ' janedoe ' ,
password : 's00pers3cret'
} ,
// `responseType` indicates the type of data that the server will respond with
// options are: 'arraybuffer', 'document', 'json', 'text', 'stream'
// browser only: 'blob'
responseType : 'json' , // default
// `responseEncoding` indicates encoding to use for decoding responses (Node.js only)
// Note: Ignored for `responseType` of 'stream' or client-side requests
// options are: 'ascii', 'ASCII', 'ansi', 'ANSI', 'binary', 'BINARY', 'base64', 'BASE64', 'base64url',
// 'BASE64URL', 'hex', 'HEX', 'latin1', 'LATIN1', 'ucs-2', 'UCS-2', 'ucs2', 'UCS2', 'utf-8', 'UTF-8',
// 'utf8', 'UTF8', 'utf16le', 'UTF16LE'
responseEncoding : 'utf8' , // default
// `xsrfCookieName` is the name of the cookie to use as a value for xsrf token
xsrfCookieName : 'XSRF-TOKEN' , // default
// `xsrfHeaderName` is the name of the http header that carries the xsrf token value
xsrfHeaderName : 'X-XSRF-TOKEN' , // default
// `undefined` (default) - set XSRF header only for the same origin requests
withXSRFToken : boolean | undefined | ( ( config : InternalAxiosRequestConfig ) => boolean | undefined ) ,
// `onUploadProgress` allows handling of progress events for uploads
// browser & node.js
onUploadProgress : function ( { loaded , total , progress , bytes , estimated , rate , upload = true } ) {
// Do whatever you want with the Axios progress event
} ,
// `onDownloadProgress` allows handling of progress events for downloads
// browser & node.js
onDownloadProgress : function ( { loaded , total , progress , bytes , estimated , rate , download = true } ) {
// Do whatever you want with the Axios progress event
} ,
// `maxContentLength` defines the max size of the http response content in bytes allowed in node.js
maxContentLength : 2000 ,
// `maxBodyLength` (Node only option) defines the max size of the http request content in bytes allowed
maxBodyLength : 2000 ,
// `validateStatus` defines whether to resolve or reject the promise for a given
// HTTP response status code. If `validateStatus` returns `true` (or is set to `null`
// or `undefined`), the promise will be resolved; otherwise, the promise will be
// rejected.
validateStatus : function ( status ) {
return status >= 200 && status < 300 ; // default
} ,
// `maxRedirects` defines the maximum number of redirects to follow in node.js.
// If set to 0, no redirects will be followed.
maxRedirects : 21 , // default
// `beforeRedirect` defines a function that will be called before redirect.
// Use this to adjust the request options upon redirecting,
// to inspect the latest response headers,
// or to cancel the request by throwing an error
// If maxRedirects is set to 0, `beforeRedirect` is not used.
beforeRedirect : ( options , { headers } ) = > {
if ( options . hostname === "example.com" ) {
options . auth = "user:password" ;
}
} ,
// `socketPath` defines a UNIX Socket to be used in node.js.
// e.g. '/var/run/docker.sock' to send requests to the docker daemon.
// Only either `socketPath` or `proxy` can be specified.
// If both are specified, `socketPath` is used.
socketPath: null , // default
// `transport` determines the transport method that will be used to make the request. If defined, it will be used. Otherwise, if `maxRedirects` is 0, the default `http` or `https` library will be used, depending on the protocol specified in `protocol`. Otherwise, the `httpFollow` or `httpsFollow` library will be used, again depending on the protocol, which can handle redirects.
transport : undefined , // default
// `httpAgent` and `httpsAgent` define a custom agent to be used when performing http
// and https requests, respectively, in node.js. This allows options to be added like
// `keepAlive` that are not enabled by default.
httpAgent : new http . Agent ( { keepAlive : true } ) ,
httpsAgent : new https . Agent ( { keepAlive : true } ) ,
// `proxy` defines the hostname, port, and protocol of the proxy server.
// You can also define your proxy using the conventional `http_proxy` and
// `https_proxy` environment variables. If you are using environment variables
// for your proxy configuration, you can also define a `no_proxy` environment
// variable as a comma-separated list of domains that should not be proxied.
// Use `false` to disable proxies, ignoring environment variables.
// `auth` indicates that HTTP Basic auth should be used to connect to the proxy, and
// supplies credentials.
// This will set an `Proxy-Authorization` header, overwriting any existing
// `Proxy-Authorization` custom headers you have set using `headers`.
// If the proxy server uses HTTPS, then you must set the protocol to `https`.
proxy : {
protocol : 'https' ,
host : '127.0.0.1' ,
// hostname: '127.0.0.1' // Takes precedence over 'host' if both are defined
port : 9000 ,
auth : {
username : 'mikeymike' ,
password : 'rapunz3l'
}
} ,
// `cancelToken` specifies a cancel token that can be used to cancel the request
// (see Cancellation section below for details)
cancelToken : new CancelToken ( function ( cancel ) {
} ) ,
// an alternative way to cancel Axios requests using AbortController
signal : new AbortController ( ) . signal ,
// `decompress` indicates whether or not the response body should be decompressed
// automatically. If set to `true` will also remove the 'content-encoding' header
// from the responses objects of all decompressed responses
// - Node only (XHR cannot turn off decompression)
decompress : true , // default
// `insecureHTTPParser` boolean.
// Indicates where to use an insecure HTTP parser that accepts invalid HTTP headers.
// This may allow interoperability with non-conformant HTTP implementations.
// Using the insecure parser should be avoided.
// see options https://nodejs.org/dist/latest-v12.x/docs/ap