Vue.js Ajax(vue-resource)

Vue で非同期ロードを実現するには、vue-resource ライブラリを使用する必要があります。

Vue.js 2.0 バージョンでは、次を使用することを推奨していますaxiosajax リクエストを完了するために。

<script src="https://cdn.staticfile.org/vue-resource/1.5.1/vue-resource.min.js"></script>

Get リクエスト

以下は簡単な Get リクエストの例です。リクエスト先は簡単な txt テキストです:

例

window.onload = function(){ var vm = new Vue({ el:'#box', data:{ msg:'Hello World!', }, methods:{ get:function(){ //get リクエストを送信 this.$http.get('/try/ajax/ajax_info.txt').then(function(res){ document.write(res.body); },function(){ console.log('リクエスト失敗の処理'); }); } } }); }

試してみる »

データを渡す必要がある場合は、次の形式を使用できますthis.$http.get('get.php',{params : jsonData})2番目のパラメータはjsonDataバックエンドに送信されるデータです。

this.$http.get('get.php',{params : {a:1,b:2}}).then(function(res){
    document.write(res.body);    
},function(res){
    console.log(res.status);
});

POST リクエスト

POST でデータをバックエンドに送信するには、3番目のパラメータが必要です {emulateJSON:true}。

emulateJSON の役割: Webサーバーが application/json としてエンコードされたリクエストを処理できない場合は、emulateJSON オプションを有効にできます。

例

window.onload = function(){ var vm = new Vue({ el:'#box', data:{ msg:'Hello World!', }, methods:{ post:function(){ //post リクエストを送信 this.$http.post('/try/ajax/demo_test_post.php',{name:"サンプル",url:"http://www.example.com"},{emulateJSON:true}).then(function(res){ document.write(res.body); },function(res){ console.log(res.status); }); } } }); }

試してみる »

demo_test_post.php のコードは次のとおりです:

<?php
$name = isset($_POST['name']) ? htmlspecialchars($_POST['name']) : '';
$city = isset($_POST['url']) ? htmlspecialchars($_POST['url']) : '';
echo '网站名: ' . $name;
echo "\n";
echo 'URL 地址: ' .$city;
?>

構文 & API

グローバルオブジェクト方式の Vue.http を使用するか、Vue インスタンス内で this.$http を使用して HTTP リクエストを開始できます。

// 基于全局Vue对象使用http
Vue.http.get('/someUrl', [options]).then(successCallback, errorCallback);
Vue.http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);

// 在一个Vue实例内使用$http
this.$http.get('/someUrl', [options]).then(successCallback, errorCallback);
this.$http.post('/someUrl', [body], [options]).then(successCallback, errorCallback);
vue-resource は 7 種類のリクエスト API(REST スタイル)を提供しています:
get(url, [options])
head(url, [options])
delete(url, [options])
jsonp(url, [options])
post(url, [body], [options])
put(url, [body], [options])
patch(url, [body], [options])

jsonp を除き、他の 6 つの API 名は標準の HTTP メソッドです。

options パラメータの説明:

パラメータ 型 説明
url string リクエストのターゲット URL
body Object, FormData, string リクエストボディとして送信されるデータ
headers Object リクエストヘッダーとして送信されるヘッダーオブジェクト
params Object URL パラメータとして使用されるパラメータオブジェクト
method string HTTP メソッド (例: GET、POST、...)
timeout number リクエストタイムアウト(単位:ミリ秒) (0タイムアウトしないことを示します)
before function(request) リクエスト送信前にリクエストを修正するコールバック関数
progress function(event) アップロード進捗を処理するためのコールバック関数 ProgressEvent
credentials boolean クロスサイトリクエストに資格情報を含める必要があるかどうか
emulateHTTP boolean ヘッダーを設定して従来の POST 方式で送信する必要があるかどうかX-HTTP-Method-OverridePUT、PATCH、DELETE リクエストを送信します。
emulateJSON boolean リクエストボディのタイプを設定しますapplication/x-www-form-urlencoded

以下のプロパティとメソッドを使用して、リクエストで取得したレスポンスオブジェクトを処理します:

プロパティ 型 説明
url string レスポンスの URL ソース
body Object, Blob, string レスポンスボディのデータ
headers Header リクエストヘッダーオブジェクト
ok boolean HTTP レスポンスコードが 200 から 299 の間の値である場合、この値は true です
status number HTTP レスポンスコード
statusText string HTTP レスポンスステータス
メソッド 型 説明
text() 約定値 レスポンスボディを文字列として返します
json() 約定値 フォーマットされた json オブジェクトとしてレスポンスボディを返します
blob() 約定値 バイナリ Blob オブジェクトとしてレスポンスボディを返します
その他の拡張