2017-03-06 11 views
1

jquery $ .post関数を使用して自分のローカルサーバーに投稿します。それは正しくポストし、$ _POST配列内の値を参照します。しかし、ウェブサイトで同じコードをオンラインでアップロードすると、$ _POSTは空に戻ります。どういうわけか「名前」 varは送信されていません。私は何が欠けていますか?相続人

jqueryの/ javascriptの側:相続人

$("#box").keyup(function(event) { 
 
    //Simple test to see if it gets to the 
 
    //file. 
 
    $.post("test-file.php", { name:"John"},  function() { 
 
     alert("success"); 
 
    }) 
 
    .done(function(data) { 
 
     //Checking the respones from the file 
 
     alert("second success: "+data); 
 
    }) 
 
    .fail(function() { 
 
     alert("error"); 
 
    }) 
 
    .always(function() { 
 
     alert("finished"); 
 
    }); 
 

 

 

 
});

テスト-file.phpファイルには、何をするか:

<?php 
 

 
//Checking to see if I get to the 
 
//file 
 
echo "TEST:"; 
 

 
//Checking to see whats inside the post 
 
var_dump($_POST); 
 

 

 

 
?>

+0

あなたは必ずDEVコンソールを開き、実際にいただきました!を参照するには、タブのネットワークを検索するには、ブラウザで 'F12'を使用し、テスト-file.php – Cruiser

+0

へのパスを二重チェックする必要があるかもしれません:以下のあなたのために働くかどうかを確認しますajayが作られるときに起こる。 – JustOnUnderMillions

+0

@Cruiserしかし、私はtest-file.phpから応答を受け取ります。それはそれが達成されていることを意味します。 – Zapp

答えて

1

ますあなたのPHPページのURLを書く必要があります。

それはあなたがこのようにそれを記述する必要がwww.my_url.com/test-file.phpだ場合:

$.post("www.my_url.com/test-file.php", { name:"John"},  function() { 
    alert("success"); 
}) ..... 
+0

両方のファイルが同じディレクトリにあり、test-file.phpが共鳴しています。メッセージは表示されますが、$ _POST配列は空です。 – Zapp

+0

@ Zapp確かにわかりませんが、実環境では 'var_dump'はデバッグのテクニックを無効にするため、' var_dump'は動作しません。(使用している場合はenv設定に依存します) – niceman

+0

@Zapp最後に ".php"を付けずにテストしてください。 .phpではブラウザーがとにかくGETを使うことがあるので、あなたはPOSTを失います。 – Cyril

0

あなたがPHPにJSONデータを掲載しているように見えます。必ずコンテンツタイプヘッダーを確認してください。

一般に、$ _POST変数は、application/x-www-form-urlencodedを転記すると入力されます。

$rest_json = file_get_contents("php://input"); 
$_POST = json_decode($rest_json, true); 
+0

助けてくれてありがとう。私はこれを試みたが、それはまた仕事をしなかった。ヌルエラーを返しました。私は$ _POSTを$ _GETに変更しました。これは3週間前に動作したコードですが、突然変更があっても機能しなくなりました。 $ _POSTは引き続きローカルで動作しますが、オンラインでは$ _GETを使用する必要がありました。非常に奇妙な。 – Zapp

関連する問題