2013-06-25 23 views
0

我正嘗試將一些數據傳遞給使用JQuery的Web服務。下面是一個簡單的客戶端:將數據傳遞給json/php網絡服務

<script type="text/javascript"> 
    $(function() { 
     $.ajax({ 
      type: "POST", 
      url: "webservices/gammeList.php?lang=fr", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: onSuccess, 
      error: onError 
     }); 
    }); 

    function onError(result) { 
     alert("error"); 
    } 

    function onSuccess(result){ 
     alert(JSON.stringify(result)); 
    } 
</script> 

和一個簡單的服務器:

<?php 
    if (isset($_GET['lang']) && !empty($_GET['lang'])) { 
     $lang = $_GET['lang']; 
    } else { 
     $lang = "en"; 
    } 

    echo (json_encode($lang)); 
?> 

它工作正常,但我想通過使用數據設定這樣的數據:

$(function() { 
     $.ajax({ 
      type: "POST", 
      url: "webservices/gammeList.php", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      data: {lang: "fr"}, 
      success: onSuccess, 
      error: onError 
     }); 
}); 

我總是從網絡服務獲得「en」作爲響應。那麼在這裏,我應該使用相同的方法$_GET['lang']來訪問輸入數據嗎?我究竟做錯了什麼?

編輯: 我改變了$_GET['lang']$_POST['lang']但仍然不起作用。

+0

use'$ _POST ['lang']' – bystwn22

+0

我很困惑。 如果我使用'$ _REQUEST ['lang']'它可以正常工作。但是用'$ _POST ['lang']'仍然是一樣的行爲。 – leochab

回答

0

改變$_POST['lang']$_GET['lang']後,它仍然沒有工作。我刪除以下行:

contentType: "application/json; charset=utf-8"

使用,那麼默認值'application/x-www-form-urlencoded; charset=UTF-8'和它的工作。

0

因此,然後使用服務器端$_POST,不$_GET

$_POST['lang'] 
2

您可以使用服務器端的$ _​​REQUEST將兩個崗位工作和GET方法:

$_REQUEST['lang'] 
0

你應該通過arrayjson_encode function like,

<?php 
    // Also you are using post method in ajax so use $_POST or $_REQUEST here 
    if (isset($_REQUEST['lang']) && !empty($_REQUEST['lang'])) { 
     $lang = $_REQUEST['lang']; 
    } else { 
     $lang = "en"; 
    } 

    echo (json_encode(array($lang)));// here passing array to json_encode 
?> 
1

您正在使用$_GET["Key"],因爲您在POST變量中傳遞數據,因此這是不正確的。

您可以使用$_REQUEST["key"]

$lang = $_REQUEST["lang"]; 

$_POST["key"]

$lang = $_POST["lang"]; 

檢索發送到PHP腳本中的數據。

要詳細瞭解下面給出的這些引用鏈接。

$_REQUEST
$_POST

+0

它使用REQUEST,但不是POST。任何想法爲什麼? – leochab