2017-09-06 14 views
1

私はVueJSでAxiosと共同でAjaxリクエストを送信しています。しかし、リクエストを送信しようとすると少し問題が発生します。AxiosでParamsを送信する - VueJS

これは私のJSコードです:

axios.post('http://localhost/app/php/search.php', { 
    query: this.search //this should send the 'query' param 
}).then(response => { 
    this.variable = response.data 
}).catch(e => { 
    this.errors.push(e) 
}) 

そして、これはsearch.phpファイルです:

<?php 

    require '../Functions.php'; 
    $obj = new Functions(); 

    $array = $obj->search($_POST['query']); 

    echo json_encode(array_values($array)); 
?> 

そして、私はPHP側で次のエラー取得しています:Notice: Undefined index: query in /path/to/app/search.php on line 6

どれをなぜこれが起こっているのか?どんな助けでも大歓迎です。更新

this.search

は、私は私のdataオブジェクトの内側に持っている変数です:私のsearch()メソッド内

<input type="text" v-model="search" @keyup.enter="search()" /> 

そして、この:

data() { 
    return { 
     search: '' 
    } 
    } 

この変数は、テキストフィールドにバインドされ私の軸索の要求です。

+0

わからないが、以下を参照してください:これは私が働いて、それを得た方法であるhttps://stackoverflow.com/questions/13000386/post-array-empty-on-jquery-ajax -call。たぶんそれは似たようなものかもしれません。角度のあるものと同じ種類のもの:https://stackoverflow.com/questions/15485354/angular-http-post-to-php-and-undefined –

+0

投稿はどこで実行されていますか、それが「this.search」ですか? – Bert

+0

ポスト@Bertを更新しました。 –

答えて

1

私はAngularで同様の問題を調べていましたが、Axiosがqueryパラメータを送信していました。しかし、phpファイルでは、POST変数にAxiosからJSONを入力する必要がありました。この場合に役立ちますaxios/vuejsについて

<?php 

    require '../Functions.php'; 
    $obj = new Functions(); 

    //Populate POST variable with incoming JSON from Axios. 
    if ($_SERVER['REQUEST_METHOD'] == 'POST' && empty($_POST)): 
     $_POST = (array) json_decode(file_get_contents('php://input'), true); 
    endif; 

    $array = $obj->search($_POST['query']); 

    echo json_encode(array_values($array)); 
?>