2016-07-11 3 views
-1

I angegeben haben, wie:Ajax Antwort Typ ist Text/HTML, wie man Antwort Typ der Anwendung/Json erhalten? Ajax Antwort auf Server-Seite

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

Als ich nach meiner Anfrage Abschluss prüfen, erhalte ich die folgende Antwort-Header:

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

In meiner Antwort, schicke ich die folgende Status basierend darauf, ob die Anforderung erfolgreich abgeschlossen wurde oder fehlgeschlagen ist oder eine Ausnahme vorliegt.

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(); 

Auf Client-Seite, ich bin mit:

$.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")); 

Meine Logik sowie Code funktioniert, aber auf der Client-Seite, meine Antwort enthält die folgenden Meldungen, die die Antwortnachricht auf verunstaltet und damit Ich kann den Endbenutzern keine korrekte Nachricht anzeigen.

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 

Alle Einsichten wären dankbar.

+0

ich setup 'always_populate_raw_post_data' auf ‚versucht haben, arbeiten - 1 in php.ini und das scheint nicht zu funktionieren. Für die Warnmeldung bin ich mir nicht sicher. – peaceSTSW

+0

* "Ich habe die Ajax-Antwort auf Serverseite wie folgt angegeben:" * wo in Bezug auf Ihren anderen PHP-Code? es scheint, als ob du es vielleicht zweimal versuchen würdest. –

Antwort

1

Verwenden Sie den PHP-Header

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

Bevor Sie den Inhalt

tatsächlich echo * i Sie sehen dies bereits verwenden, aber es sollte