2016-11-01 50 views
0

私の反応コンポーネントからphpファイルにajaxを呼び出そうとしていますが、phpファイルが特定の出力を返すことを期待していますが、代わりにソースコード全体を取得します。助けてもらえますか?AjaxからReactからPHPファイルへの呼び出し

これは私のリアクションコンポーネントにあります。

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

これは私のPHPファイルにあります。

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

私がテストしようとしているのは、私のコンソールに "Hello"を取得することです。代わりに私は全体のPHPファイルを取得します。

答えて

0

を試してみて結果、あなたはあなただけ、応答を取得するためにPHPでjson_encode()を使用して、そしてDataType:jsonを使用していませんDataTypeをjsonのように使用する必要があります。

dataType: "json", 

jsonの出力は次のようになります。"message"

は、Ajax更新:

$.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

私は単にデータ型のJSONを追加し、今私はエラーを取得します。私はコンソールに状態、エラー、xhrを記録し、何も応答しません。オブジェクトとそのステータス200と応答テキスト付きのxhrレスポンス** <?PHP↵$ data = 'hello'↵header(' Content-Type:application/json ');↵echo json_encode($ data); ?>。**ステータスは** JSON **で予期しない構文エラーが発生し、エラーメッセージは** parseerror ** –

+0

@BrianBier:なぜheader( 'Content-Type:application/json')を使用していますか? ; '? – devpro

+0

私はそれが問題であるかどうかを確かめるためにテストしていました。しかし、そうではありません。 –

0

まず最初に、 'hello'はjsonエンコード可能ではありません。たとえばarray( 'result' => 'hello')を使用する必要があります。

あなたがPHPファイルの内容を取得した場合、あなたは働いているローカルサーバーを使用していないようです。あなたはJSONを送信するために、あなたPHPheaderを設定する必要が

0

は、あなたの場合には、この

<?PHP 
$data = 'hello' 
header('Content-Type: application/json'); 
echo json_encode($data); 
?> 
関連する問題