2016-02-09 37 views
5

Sadece PHP bazı json-encoded veri almak için JQuery ajax fonksiyonu yarattı, burada benim kod:başlığındaki `kullanımı ("İçerik-türü: application/json");`

dosya adı: bank.php

$('form').on('submit', function(){ 

     var datatobesent = $(this).serialize(); 
     $.ajax({ 
      data: datatobesent, 
      url:'data.php', 
      type:'GET' 
     }) 
     .done(function(data){ 
      console.log(typeof(data)); 
     }); 
     return false; 
}) 

ve data.php I

if(isset($_GET)){ 
    $data = $_GET; 
    echo json_encode($data); 
    header("Content-type:application/json"); 
} 

yazdı beniçinde header("Content-type:application/json"); çizgisini sildiğinizde soru,console.log, ajax tarafından döndürülen veri türünün string olduğunu bildirir.

Ve bank.php içinde ajax işlevi içinde dataType : json`` eklendiğinde object

içine tipi değişiklikleri böylece aslında header("Content-type:application/json"); fonksiyonu nedir?

+0

sen dataType kullanıyorsanız: Json. Daha sonra başlık işlevini kullanmaya gerek yoktur, size json sonucu verecektir. Sadece – Monty

+1

'u ayrıştırmak veya dizmek zorundasınız Yan not: üstbilgiler ** önce ** gelir. Kodunuz kilitlenmezse, çıktı arabelleklemeyi etkinleştirdiğinizden. –

cevap

7

header("Content-type:application/json") işlevi, http json üstbilgisini tarayıcıya, beklediği türde bir veri hakkında bilgilendirmek için tarayıcıya gönderir. Tarayıcınızdaki her bir istek için tüm http başlıklarını görebilirsiniz (chrome açık geliştirici araçları kullanıyorsanız, ağa gidin, görünümü ayarlayın ve sayfayı yeniden yükleyin, herhangi bir yere tıklarsanız tarayıcınız tarafından yapılan tüm istekleri görürsünüz. Bu taleplerden herhangi birinde, her bir talebin başlıklarını göreceğiniz başlıklara tıklayın).

Bu işlevi kullandığınızda, sunucudan gönderilen yanıtta http başlığı Content-Type:application/json göreceksiniz. Bunu kullanmak yoksa sunucu büyük olasılıkla Content-type:text/html; charset=UTF-8 @Monty olarak

Eğer AJAX için dataType: 'json' eklenirse jQuery bile gönderilen verileri işlemek gibi bu işlevi gerekmez belirtti olduğu varsayılan gönderecek metin/html başlığı ile.

Ayrıca Bakınız: jQuery AJAX Call to PHP Script with JSON Return

başlıkları hakkında daha fazla bilgi edinmek için: http-headers-for-dummies

+1

Ya da Firefox bir anne – pokeybit