2

私はajaxでデータを送信しています:

$('article.work a').click(function(e){
    var h = $(this).attr('href');

    e.preventDefault();

    $.ajax({
      type: "POST",
      url: h,
      data: workItems,
      success: function(data){
        console.log('success');
        window.location = h;
      },
      error: function(){
        console.log('eror');                    
      }             
    });
});

OK を送信し、firebug の投稿タブをチェックインすると、次のようになります。

ポスト値

したがって、正しいデータを送信していると思います。しかし、php経由で$_POSTから取得しようとすると、

<?php 
print_r(json_decode($_POST["json"])); 
?>;

何も印刷されません。

私は何を間違っていますか?データが送信されたにもかかわらず、$_POST が認識しないのはなぜですか?

4

1 に答える 1

1

試す:

var_dump($_POST['json'], true). これは、結果がオブジェクトではなく連想配列になることを意味します。

試す:

    $.ajax({
        url: "h",
        type: "post",
        data: workItems,
    });

var_dump($_POST);または を連想配列として使用してデータを取得してみてください: var_dump($_POST['workItems'], true);

JSONの結果を出力する前に、UTF8として正しくフォーマットする必要があると思います:

$result = mb_convert_encoding($result,'UTF-8','UTF-8'); 
$result = json_decode($result);

JSON コードを出力する前に上記のコードを配置します。

于 2013-09-07T13:58:59.403 に答える