2016-09-24 10 views
1

私は次のコードのポリマー1.0の初心者です。アイアン・アヤックスのオン・レスポンスがトリガされたとき、私のPHPファイルからjsonレスポンスを取得しようとしています。私はPHPを編集して別の応答を試みましたが、常にコンソールログにnullが表示されます。私はすべてのエラーを見つけることができませんが、r.detail.responseリターンが毎回をゼロに応答iron-ajaxレスポンスがPHP jsonレスポンスのnullを返す

postResponse: function(r){ 
      console.log(r.detail.response); 
      if(r.detail.response.success==1){ 
       console.log('Tip posted'); 
      } 
      else{console.log('Error occured.not posted');} 
     } 

を処理するコードのコード

<iron-ajax 
     id="ajax" 
     method="POST" 
     url="post_tip.php" 
     handle-as="json" 
     on-response="postResponse" 
     > 
    </iron-ajax> 

スクリプト部分の Ajaxの一部。

私のPHPにはあります。

$resp = '{"success":1}'; 
echo $resp; 
echo json_encode($resp); 

私が間違っている部分を特定できません。可能なばかげた質問を申し訳ありません。

答えて

1

あなたはPHPですべて間違っている。まずjson_encodeは配列やオブジェクトをjson stringにエンコードしますが、それはあなたの文字列をエスケープしますが、それはあなたが望むものではありません。第2に、ブラケットなしで2回返され、JSON.parseで解析できないか、またはJavaScriptでJSON Objectとして使用することはできません。

あなたが応答が引っ掛けないトラフJSON.parseかもしれないので、JSON content-typeを返送し、実際のJSONを期待しますが、鉄 - AJAXのドキュメントにhandle-as="json"を意味する必要があります

JSONを:XHR.responseTextを使用していますJSONとして解析されます。

のでXHR.responseTextJSON.parseを使用してiron-ajax要素が必要とされていないPHPのヘッダを意味し、オブジェクト、などJSONを解析するが、あなたは使用する必要があります。

PHPコードは次のように変更し

:本当に私の問題を解決し、私は答えからかなり学んだ

<?php 

    $result = array('success' => 1); 

    header('Content-Type: application/json'); 
    echo json_encode($result); 
+0

おかげでたくさんの男を:)。 – Burhan

関連する問題