2016-03-29 12 views
0

私は純粋なjavascriptコードを持っており、JSONを送信する必要があります(これはGET制限を超えている可能性があります....)ので、 POSTリクエストのAJAX。ここAJAXを使用してPOSTリクエストを行うことができません

私のコードがある...

<!DOCTYPE html> 
    <html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Test POST via AJAX</title> 
    </head> 
    <body> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
     <script> 
     var waypoints = [{ 
       "options": { 
        "allowUTurn": false 
       }, 
       "latLng": { 
        "lat": 44.911434, 
        "lng": 7.671602 
       }, 
       "name": "Corso Vinovo, Carignano, TO, Piemonte, Italia", 
       "_initHooksCalled": true 
       }, { 
       "options": { 
        "allowUTurn": false 
       }, 
       "latLng": { 
        "lat": 44.910167, 
        "lng": 7.676274 
       }, 
       "name": "Il Tempio del Pane, Corso Cesare Battisti, Carignano, TO, Piemonte, Italia", 
       "_initHooksCalled": true 
       }, { 
       "options": { 
        "allowUTurn": false 
       }, 
       "latLng": { 
        "lat": 44.908034, 
        "lng": 7.675075 
       }, 
       "name": "Banca Intesa, Via Ferdinando Salotto, Carignano, TO, Piemonte, Italia", 
       "_initHooksCalled": true 
     }]; 

     alert ('Waypoints --> ' + JSON.stringify(waypoints)); 

     $.ajax({ 
      type: "POST", 
      url: "NewPage.php", 
      contentType: "application/json", 
      data: JSON.stringify(waypoints), 
      success: function() 
      { 
      alert("OK ..."); 
      }, 
      error: function() 
      { 
      alert("KO ...") 
      } 
     }) 

     alert('After post request ...'); 

    </script> 
    </body> 
    </html> 

、あなたは私のAJAXコードは、 "OK" を私に警告することを見ることができるコードを実行NewPage.php

<?php 
    echo 'Waypoints ?????'; 
    print_r($_POST) 
?> 

のコードですが、私は私のNewPage.php

については何も見ることができない私は、陳腐についてとても残念このようなものについてはかなりnewbye、よ....

提案、例、jsfiddle、alternative?

ありがとうございます!

チェザーレ

+0

あなたはあなたのNewPage.phpから何を見たいですか? – guradio

+0

成功コールバックには返り値varがありません。サーバ側から結果を取得し、ポストプリント後にダイを置いたり終了したりすることになっています。 –

+0

現時点では、私は(エコー...)、JSONが最初のhtmlページから送信されたのを見たいと思います。ありがとう – Cesare

答えて

0

あなたはphpでdieを使用する必要があります。

<?php 
     echo json_encode($data_to_pass); 
     die; 
    ?> 

とJavaScriptのファイルにあなたがアプリケーション/ JSONとしてコンテンツタイプを使用しているので、あなたが戻ってあなたのphpのページからの結果をjson_encodeすべき

success: function(data) 
      { 
      alert(data); 
      }, 
0

を使用する必要があります。また、exitを使用しないと、jsonデータの代わりにページ全体が返される理由がわかりません。

echo json_encode($some_data); 
exit(); 
0
はにあなたの成功コールバックを変更し

success: function(data) 
      { 
      alert(data); 
      }, 

そして、あなたは、AJAXのPOSTが正常に終了すると、アラート内のPHPページにエコーされているものが表示されるはずです。

0
 $.ajax({ 
      type: "POST", 
      url: "NewPage.php", 
      dataType: "json", 
      data: {'waypoints':waypoints}, 
      success: function(resp) 
      { 
      //alert("OK ..."); 
      }, 
      error: function() 
      { 
      //alert("KO ...") 
      } 
     }) 

NewPage.php

  <?php 
       echo 'Waypoints ?????'; 
       print_r($_POST['waypoints']); 
      ?> 
0

データを変更してみてください:データのウェイポイント:{MYDATA:ウェイポイント}。配列を直接渡すと、jQueryはそれを奇妙な形式で渡します。 http://api.jquery.com/jQuery.param/

0

あなたは戻って

$.ajax({ 
      type: "POST", 
      url: "NewPage.php", 
      contentType: "application/json", 
      data: JSON.stringify(waypoints), 
      success: function(response) 
      { 
      alert(response); 
      }, 
      error: function(err) 
      { 
      alert(err) 
      } 
     }) 

alert('After post request ...'); 

は、AJAX呼び出しが完了した後に実行するつもりはない、それは正確後に呼び出されますAJAX成功呼び出しから返された応答を使用していませんそれが完了したか保留中であるかに関係なく、Ajaxリクエストが行われます。成功またはエラーの中であなたのものをしてください

関連する問題