2017-09-06 2 views
1

, also arbeite ich mit Axios in VueJS, um Ajax-Anfragen zu senden. Allerdings bekomme ich ein kleines Problem, wenn ich versuche, Anfragen zu senden.Senden Sie Params mit Axios - VueJS

Das ist mein JS-Code:

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) 
}) 

Und das ist die search.php Datei:

<?php 

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

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

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

Und ich bin auf der PHP-Seite die folgende Fehlermeldung erhalten: Notice: Undefined index: query in /path/to/app/search.php on line 6

Beliebig Grund warum dies passiert? Jede Hilfe wird sehr geschätzt.

aktualisieren

this.search ist eine Variable, die ich in meinem data bezwecken:

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

Diese Variable zu einem Textfeld binded ist:

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

Und das in meinem search() Methode ist meine axios Anfrage.

+0

Nicht sicher axios/vuejs, aber sehen, ob das hilft: https://stackoverflow.com/questions/13000386/post-array-empty-on-jquery-ajax -Anruf . Vielleicht ist es etwas Ähnliches. Gleiche Art mit eckigen: https://stackoverflow.com/questions/15485354/angular-http-post-to-php-and-undefined –

+0

Wo ist die Post durchgeführt und was ist 'this.search' wenn es ist? – Bert

+0

Ich habe den Beitrag @Bert aktualisiert. –

Antwort

1

Ok, also sah ich ein ähnliches Problem in Angular und es stellt sich heraus, Axios schickte die query param. In der PHP-Datei musste ich jedoch die POST-Variable mit dem JSON füllen, der von Axios kam. Dies ist, wie ich es bekam Arbeit:

<?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)); 
?>