2016-11-12 30 views
0

私のmLabデータベースへのAJAX POSTリクエストに問題があります。基本的には、私のデータベースに追加するデータに応答している私のページに 'chartJS'チャートがあります。 1つのドキュメントを更新するためにPUT関数を実行すると、すべて正常に動作し、チャートはただちに更新されます。しかし、POST関数でほぼ同じコードを実行すると(「PUT」ではなく「POST」にタイプを変更すると、ページがリフレッシュされるまでPOSTが完了しないように見えます。AJAX投稿は投稿しますが、ページを更新するまでは投稿しません。

私はこのプログラミングに関することはすべて新しくなっていますが、データがポストされているようですが、POSTレスポンスは手作業で中止するまでlimboに詰まっています。

私のコードは、必要に応じて。すべてのヘルプは非常に高く評価されるだろうhttps://github.com/TheScogg/lifelogsである!

function post() { 
 
    jQuery.get("/db/", function(data, textStatus, jqXHR) { 
 
    console.log("Get response:"); 
 
    // console.dir(data); 
 
    // console.log(textStatus); 
 
    // console.dir(jqXHR); 
 
    }).done(function (data) { 
 
    console.log("==========================================") 
 
    console.log(sendInfo.activities); 
 
    jQuery.ajax({ 
 
     url: "/db/", 
 
     type: "POST", 
 
     data: { 
 
     date: sendInfo.date, 
 
     activities: JSON.stringify(sendInfo.activities), 
 
     survey: JSON.stringify(sendInfo.survey) 
 
     }, 
 
     success: function (data, textStatus, jqXHR) { 
 
     getData(); 
 
     } 
 
    }); 
 
    }).done(function (data) { 
 
    console.log("put date loaded"); 
 
    }); 
 
} 
 

 

 
function put(idMatch) { 
 
    console.log("Duplicate Date at id: " + idMatch); 
 

 
    jQuery.get("/db/" + idMatch, function(data, textStatus, jqXHR) { 
 
    console.log("Get response:"); 
 
    // console.dir(data); 
 
    // console.log(textStatus); 
 
    // console.dir(jqXHR); 
 
    }).done(function (data) { 
 
    console.log("==========================================") 
 
    console.log(sendInfo.activities); 
 
    jQuery.ajax({ 
 
     url: "/db/" + idMatch, 
 
     type: "PUT", 
 
     data: { 
 
     date: sendInfo.date, 
 
     activities: JSON.stringify(sendInfo.activities), 
 
     survey: JSON.stringify(sendInfo.survey) 
 
     }, 
 
     success: function (data, textStatus, jqXHR) { 
 
     getData(); 
 
     } 
 
    }); 
 
    }).done(function (data) { 
 
    console.log("put date loaded"); 
 
    }); 
 
} 
 

 
// Reload chart after POSTING/PUTTING NEW RECORD 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

ブラウザのdevツールの[ネットワーク]タブで実際のリクエストを確認してください。私はあなたがサーバー側のエラーを持っていると思われ、応答ステータス(500 =サーバーエラー)で伝えることができます – charlietfl

+0

Firebugネットワークタブでは、数分間回転し、ステータスが「異常終了」に戻ります。今、Chromeでは、POSTを実行するとブラウザが完全にロックされます。しかし、Chromeを閉じてもう一度開くと、私が投稿したデータが表示されます。 –

+0

私の推測では、あなたのサーバーコードで何かが間違っています。どんな言語ですか、それをデバッグできますか? – charlietfl

答えて

0

charlietfl、ありがとうございました。私は自分の間違いを見つけました。そして、それがノーと間違いだと言うと私を信じています。

私は、同じ場所への投稿要求を持つさまざまなファイルにさまざまなコードを持っていました。たとえば、私はapp.jsというファイルの一番下にあるコードを使って演奏していました。しかし、私は、同じ場所に './routes/index'というファイルに投稿しようとするコードも持っていました。さて、私のapp.jsファイルの最上位にあると思ったことは?

var routes = require( './ routes/index'); app.use( '/'、routes);

それで、私が送信していると思ったPOST要求にも到達する前に私が作成したことを忘れてしまったPOST要求を引き出していました。

また、私はさまざまなバックアップファイルを用意していましたが、そのバックアップファイルには、使用しようとしている可能性のある類似のコードがありました。

私は自分の研究を取り上げて、Expressプロジェクトですべてのものが互いにどのように関係しているのかを実際に理解し、すべての理由と理由を実際に理解しようとする必要があります。

もう一度おねがいします!

関連する問題