2016-07-11 9 views
-1

私は、サーバ側でのAjax応答を指定している:私は私の要求完了後に確認したとき、私は以下のレスポンスヘッダを取得Ajaxの応答タイプはtext/htmlです。application/jsonの応答タイプを取得する方法は?

header("Content-Type: application/json; charset=utf-8"); 

:私の応答では

Content-type:text/html; charset=UTF-8 

を、私は次のように送信しています要求が正常に完了したか失敗したか、または例外が存在するかどうかに基づいてステータスを返します。クライアント側では

if($stmt->rowCount() == 0) { 
    // Create SQL Statement 
    foreach ($payload_jsonDecoded as $i => $item) { 

     $sql = $sql . "some insert query"; 
    } 

    // Prepare statement 
    $insertstmt = $conn->prepare($sql); 

    // execute the query 
    $insertstmt->execute(); 


    if($insertstmt->rowCount() > 0){ 
     $json = json_encode(array(
      "status" => true, 
     )); 
    } 
    else{ 
     $json = json_encode(array(
      "status" => false, 
     )); 
    } 
} 
else{ 
    $json = json_encode(array(
     "status" => false, 
    )); 
} 

echo $json; 
die(); 

、私が使用しています:

$.ajax({ 
      url: 'path', 
      type: "POST", 
      data: jsonObj, 
      //dataType: "jsonp", 
      processData: false, 
      contentType: "application/json; charset=utf-8", 
       success: function (output, status, xhr) { 
        console.log(xhr.getResponseHeader("Content-Type")); 

私のロジックだけでなく、コードの作品を​​、クライアント側ではなく、私の応答は、したがって、応答メッセージを台無しにし、次のメッセージが含まれています私はエンドユーザに正しいメッセージを表示することができません。

Deprecated: Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set 'always_populate_raw_post_data' to '-1' in php.ini and use the php://input stream instead. in Unknown on line 0 

Warning: Cannot modify header information - headers already sent in Unknown on line 0 

洞察力があれば幸いです。

+0

を動作するはずPHPのヘッダ

header("Content-Type: application/json"); 

を使用してください - 1 'をphp.iniに入れても動作しないようです。警告メッセージについては、わかりません。 – peaceSTSW

+0

* "サーバー側でAjaxレスポンスを指定しました:" *あなたの他のPHPコードとの関係はどこですか?あなたはそれを2度やろうとしているように思えます。 –

答えて

1

あなたが実際にコンテンツ

をエコーする前に*私はすでにこれを使用する参照が、それは私が「に設定する「always_populate_raw_post_data」を試してみました

関連する問題