2016-08-08 15 views
1

PHPのページにAJAXポストメソッドを使用して大きな文字列を送信することに苦労しています.AJAXの部分は問題なく動作しているようですが、問題はすぐに私の行き先ページにリダイレクトするとPHP $ _POSTは空のようです。 私はいくつかの調査をしましたが、これは再発する問題であることがわかりましたが、解決策のどれも私のために働いていませんでした。大きな文字列AjaxをPHPに送信

AjaxのページAjax sending sing as intended

PHP先ページ

PHP destination page

AJAXコード

$("#save").click(function(event){ 
var data = $("#mycontent").html(); 

$.ajax({ 
    type: "POST", 
    url: "concat.php", 
    cache:false, 
    dataType:"html", 
    data: { 
     mycontent: data, 
     }, 
    success: function(msg){ 
     alert("Data Saved: " + msg); 
     top.location.href = 'concat.php'; 
    } 
}); 
}); 

PHPページ

session_start(); 
if(isset($_POST['mycontent'])){ 
$content = $_POST['mycontent']; 
} 
var_dump($_POST); 
var_dump($_REQUEST); 
+3

PHP設定でPOSTリクエストの最大サイズがあります。あなたはそれをヒットしていないことを確認してください。 – Sirko

+1

これは 'php.ini'で' post_max_size'と呼ばれています – RiggsFolly

+0

私は8Mに設定しました。私の文字列はいつもbeyong 1Mと考えられません。 post_max_size = 8M – Z3R0

答えて

1

$ _POSTはページリダイレクトの間に保持されません。投稿されたデータを守るために、他のメカニズムが必要です。 $ _GET、セッション、データベースなどを使用します。

+0

正確にリダイレクトを見つけましたか? – Sirko

+0

Ajaxリクエストの後にページをどのようにリダイレクトしていますか?関連するコードを投稿するのは心配ですか? – Jason

+1

JSコードでページをリダイレクトする 'top.location.href = 'concat.php';'これは基本的に/contact.phpにGETリクエストを送るため、POSTデータは保持されません。 – Jason

関連する問題