Ajax共通パッケージングライブラリ-Axiosの利用について
Axiosは現在最も広く使われているAJAXラッパーライブラリです。
Axiosには以下のような特徴があります。
- ブラウザからXMLHttpRequestの作成
- node.js から http リクエストを作成する
- Promise APIのサポート
- リクエストとレスポンスの傍受 {について リクエストデータ、レスポンスデータの変換 {を使用します。 リクエストのキャンセル {を使用します。 {について JSONデータの自動変換 {について XSRFに対するクライアント側の防御機能サポート
axios を使用する場合は、script タグを使用して導入する必要があります。https://unpkg.com/axios/dist/axios.min.js
アクシオスの中国語版ウェブリンクです。
アクシオス中国語サイト
アクシオスAPI
関連する設定を axios() に渡し、リクエストを作成します。
- axios (オブジェクト形式に関する設定オプション)
- axios (URL、設定)
共通設定項目
- url: リクエストのサーバーURL
- method: リクエストを作成するために使用されるメソッド
- baseURL: 相対 URL プレフィックスを渡します。これは自動的に url の前に付加されます。
- headers: 送信されるカスタムリクエストヘッダ
- params: リクエストと一緒に送信されるURLパラメータ
- data: リクエストのボディとして送信されるデータ
- timeout: リクエストがタイムアウトするまでのミリ秒数を指定します (0はタイムアウトなし)
- responseType: サーバーレスポンスのデータ型、デフォルトは "json"
axios().then(function(response){
// the response message object of a normal request response
})
.catch(function(error){
//caught error
})
コードは以下のように表示されます。
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script>
// post request using axios method
axios({
url:"/pinglun",
method:"post",
baseURL:"http://localhost:3000",
header:{
"Content-Type":"application/json"
},
data:{
"content":"well",
"lyId":4
},
timeout:1000,
}).then(function(res){
console.log(res.data);
}).catch(function(error){
console.log(error);
})
</script>
axiosのグローバルデフォルトの設定
axios.defaults.baseURL = 'https://xxx.xxx.com';
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencode'
axios インターセプター: リクエストやレスポンスが then や catch によって処理される前にインターセプトする。
axios用リクエストインターセプター
{{コード
axios用レスポンスインターセプター
// Request interceptors for axios
axios.interceptors.request.use(function(config){
//config item config
config.params = {
id:2 //Change the params in the config item, filter id=2
}
return config;//to have a return value
})
//axios method
axios("http://localhost:3000/liuyan")
.then(function(res){
console.log(res.data);
})
.catch(function(error){
console.log(error);
})
//axios method
axios("http://localhost:3000/pinglun")
.then(function (res) {
console.log(res.data);
})
.catch(function (error) {
console.log(error);
})
//Multiple axios methods can also be intercepted
アクシオスのクイックリクエスト方式
axios.get(url[,config])を実行します。
//response interceptor for axios
axios.interceptors.response.use(function(response){
return(response.data);//there are many values in response, just choose data
})
//axios method
axios("http://localhost:3000/liuyan")
.then(function (res) {
console.log(res);//response is intercepted there and has passed the data as data
})
.catch(function (error) {
console.log(error);
})
axios.post(url[,データ[,設定]])
//axios.get(url[,config])
axios.get("http://localhost:3000/liuyan?id=2")
.then(function(res){
console.log(res.data);
})
axios.get("http://localhost:3000/liuyan",{
params:{
id:1
}
}).then(function(res){
console.log(res.data);
})
axios.delete(url[,config])を実行します。
//axios.post(url[,data[,config]]) , post request, add data
axios.post("http://localhost:3000/users",{
name:"laowang",
age:23,
class:1
})
axios.put(url[,データ[,設定]])
//axios.delete(url[,config])
axios.delete("http://localhost:3000/liuyan",{
params:{
id:5
}
})
XMLHttpRequest 2.0、html5ではXMLHttpRequest型を全面的にバージョンアップし、より使いやすく、より強力になりました。
オンロード / オンプログレス
XML.onloadイベント: リクエストが完了したときのみ発生するイベント
XML.onprogress イベント: リクエストが進行中のときのみ発生します。
//axios.put(url[,data[,config]])
axios.put("http://localhost:3000/liuyan",{
name:"wangshisan",
id:11
})
レスポンス属性
レスポンスボディを,responseType の値によって型が決まるオブジェクトで表します.responseType の値に応じて、特定の型によるデータを要求する。
responseType は、open() を呼び出してリクエストを初期化した後、 send() を呼び出してリクエストをサーバーに送信する前に設定しなければ有効ではありません。
//xhr.onload event: fires only when the request completes
//xhr.onprogress event: triggered only when the request is in progress
var xhr = new XMLHttpRequest();
xhr.open("get","http://localhost:3000/pinglun");
xhr.onload = function(){
console.log("load:",this.readyState);
};
xhr.onprogress = function(e){
console.log("progress:",this.readyState);
// the number of data received during the periodic request
console.log(e.loaded);
// total number of data received
console.log(e.total);
}
xhr.send(null);
以上、Ajax共通ラッパーライブラリ-Axiosの使い方の詳細でしたが、AjaxラッパーライブラリAxiosの使い方については、BinaryDevelopの他の関連記事にもご注目ください!。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン