2016-11-01 2 views
0

Ich versuche einen AJAX-Aufruf von meiner Antwort-Komponente zu einer PHP-Datei, in der ich erwarte, dass die PHP-Datei eine bestimmte Ausgabe zurückgibt, stattdessen bekomme ich einen vollständigen Quellcode. Kann jemand helfen?Ajax Aufruf von React zu einer PHP-Datei

Das ist, was ich auf meiner reagierenden Komponente habe.

import React from 'react'; 
import {Link} from 'react-router'; 


export default class BikePage extends React.Component { 
    onFormSubmitSuccess(e) { 
     e.preventDefault(); 
    $.ajax({ 
     url: 'php/new_user.php', 
     type: "GET", 
     success: function(data) { 
     console.log('success') 
     console.log(data); 
     }.bind(this), 
     error: function(xhr, status, err) { 
     console.log('error') 
     }.bind(this) 
    }); 
    } 

    render(){ 
    return (
     <button onClick={this.onFormSubmitSuccess.bind(this)} >click here</button> 
    ) 
    } 
} 

Das ist, was auf meiner PHP-Datei ist.

<?php 
//Function to check if the request is an AJAX request 
$return = 'hello' 
echo json_encode($return); 
?> 

Alles, was ich versuche zu testen, ist das "Hallo" auf meiner Konsole zu bekommen. aber stattdessen bekomme ich die gesamte php-datei.

Antwort

0

Versuchen führt zu schicken, Sie json_encode() in PHP verwenden Antwort für immer, und nicht DataType:json verwenden, können Sie einfach müssen Datentyp als json verwenden wie:

dataType: "json", 

Ihre json Ausgabe wie sein Aussehen sollte: "message"

Ajax Modifiziert:

$.ajax({ 
url: 'php/new_user.php', 
type: "GET", 
dataType: "json", 
success: function(data) { 
    console.log('success'); 
    console.log(data); // will print "message" 
}.bind(this), 
error: function(xhr, status, err) { 
    console.log('error'); 
}.bind(this) 
}); 
+0

ich einfach Datentyp json hinzugefügt und ich bekomme jetzt einen Fehler. Ich trage den Status log, err und xhr und es reagiert nicht mit irgendetwas. Die xhr-Antwort mit einem Objekt und einem Status 200 mit einem Antworttext ** . ** Der Status ist ** Syntaxfehler unerwartetes Tecken

+0

@BrianBier: Warum verwenden Sie 'header ('Content-Type: application/json') ; '? – devpro

+0

Ich habe gerade getestet, ob das das Problem war. aber es ist nicht. –

0

Zunächst einmal 'Hallo' ist nicht Json codierbar Sie müssen zum Beispiel Array ('Ergebnis' => 'Hallo') verwenden.

Wenn Sie den Inhalt der php-Datei erhalten, scheint es, dass Sie keinen funktionierenden lokalen Server verwenden.

0

Sie müssen header in Ihrem PHP setzen JSON

dies in Ihrem Fall

<?PHP 
$data = 'hello' 
header('Content-Type: application/json'); 
echo json_encode($data); 
?>