2016-03-27 33 views
1

Web sitem için bir api kurmaya çalışıyorum. İstek yöntemine bağlı olarak farklı bir eylem yapan tek bir sayfaya sahip olmak isterim. yani. Bir kaynak almak için GET, yeni bir tane oluşturmak için POST, güncelleştirmek için SİLME ve SİLME'yi siler. Hangi işlevi çalıştırmam gerektiğini görmek için $_SERVER['REQUEST_METHOD'] değişkenini test ediyorum, ancak nedense ajax isteğimden bağımsız olarak her zaman gösteriliyor. hemen çevirir, ilk POST olsun neden

Sayfa 1

var data = { 
      store_id: id, 
      reward: reward, 
      disclaimer: disclaimer, 
      period: period, 
      active: active 
     } 

     //make request to save item 
     $.ajax({ 
       type: "POST", 
       url: 'http://' + '<?php echo $base_url; ?>' + 'api/birthday', 
       data: data, 
       dataType: 'json', 
       //headers: {"X-HTTP-Method-Override": "POST"}, 
       success: function(obj){ 
        console.log(obj); 
        $('#save-modal').dialog('open'); 
       }, 
       error: function(xhr, textStatus, errorThrown){ 
        console.log(arguments); 
        console.log(xhr + '' + textStatus + ' ' + errorThrown); 
       } 
     }); 

isteğiniz gerçek bir PHP dosyasına yönlendirildiğinde gibi 2

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    if(isset($_REQUEST['store_id']) && 
     isset($_REQUEST['reward']) && 
     isset($_REQUEST['disclaimer']) && 
     isset($_REQUEST['period']) && 
     isset($_REQUEST['active']) && 
     is_numeric($_REQUEST['active'])){ 
      exit(json_encode(update_birthday_reward(filter_var($_REQUEST['store_id'], FILTER_SANITIZE_NUMBER_INT), filter_var($_REQUEST['reward'], FILTER_SANITIZE_STRING), filter_var($_REQUEST['disclaimer'], FILTER_SANITIZE_STRING), filter_var($_REQUEST['period'], FILTER_SANITIZE_STRING), filter_var($_REQUEST['active'], FILTER_SANITIZE_NUMBER_INT)))); 
    }else{ 
     exit(json_encode($_SERVER['REQUEST_METHOD'])); 
    } 
}else if ($_SERVER['REQUEST_METHOD'] === 'GET') { 
    if(isset($_REQUEST['store_id'])){ 
     exit(json_encode(get_birthday_reward($_REQUEST['store_id']))); 
    }else{ 
     exit(json_encode($_SERVER['REQUEST_METHOD'])); 
    } 
} 
+0

JQuery kendi dosyasında ve php kendi sunucusunda aynı dosyada yer alıyor –

+0

REQUEST_METHOD, print_r ($ _ SERVER) –

+0

neyi kullandığınız sırada hala görünüyor? Ayrıca, php dosyasını, .../birthday/index.php' gibi URL dizenize eklemeye çalışın. –

cevap

1

Görünüşe Sayfa, işte bir GET isteği.

.../birthday/ yerine, .../birthday/index.php gibi gerçek PHP dosyasını eklemeyi deneyin.

İlgili konular