基本的に、ユーザーがページを操作することでトリガーされた投稿リクエストを(jQueryを介して)node.jsサーバーに送信するクライアント側のJavaScriptがあります。次に、node.jsサーバーがリクエストを処理し、データベース内のコンテンツを更新します。
何らかの理由で、1回のページ読み込みでサーバーに送信できる投稿数の制限に達しています。この最大値は6です。1つのページから6つの投稿が送信された後、それ以上リクエストを送信しようとすると、次のエラーが発生します。
編集:
これらの赤いエラーは、6つを超えるリクエストを送信しようとした後、Javascriptコンソールにポップアップ表示されます。
send jquery-latest.js:8526
jQuery.extend.ajax jquery-latest.js:7978
jQuery.(anonymous function) jquery-latest.js:7614
haveLikedOrDislikedObject
(anonymous function) localhost:33
fire jquery-latest.js:1037
self.fireWith jquery-latest.js:1148
done jquery-latest.js:8074
callback
投稿を送信するための私のコード:(基本的にリスナーは多数のdivに接続されており、クリックすると投稿リクエストが送信されます)
//Sets on click listener for like button of content
$(document).delegate("div[id^='likeDiv']", "click", function() {
var el = this;
$.getScript("public/javascripts/load_content.js", function(){
haveLikedOrDislikedObject(0, $(el).attr('name'), theUser);
});
});
function haveLikedOrDislikedObject(res, contentNumber, user){
if(user != undefined){
if(res == 0){
$.post("/likeContent", { content: contentNumber, user: user.UserID });
$("#haveLikedDiv_" + contentNumber).text("You like this.");
} else{
$.post("/dislikeContent", { content: contentNumber, user: user.UserID });
$("#haveLikedDiv_" + contentNumber).text("You dislike this.");
}
} else{
$("#haveLikedDiv_" + contentNumber).text("Sorry, something went wrong.");
}
};
なぜ私がこの制限を受けるのか疑問に思っていますか?また、これを回避する方法や、単一のページからサーバーに多数のものを送信する他の方法についての考えはありますか?
解決済み: サーバーから何も返送していなかったことが判明しました。これは、各投稿が応答を待っていたため、6つのオープンリクエストを行ったことを意味すると思います。したがって、次のように定義されていない場合でも、サーバーから何かを返送していることを確認してください。
app.post('/likeContent', function(req, res){
res.send(undefined);
});