2014-03-31 45 views
0

我不明白爲什麼數據對象似乎不存在於PHP服務器端頁面。

$http.post("serverside.php", {"data1":"okpass"}).success(function(data, status, header, config){ 
       console.log(data);// 
       console.log(status);//202 
       console.log(header);//function (c){a||(a=nc(b));return c?a[O(c)]||null:a} 
    }); 

PHP

if(isset($_POST["data1"]) && $_POST["data1"] == "okpass"){ 
    echo "It works!"; 
    exit(0); 
} 

回答

1

Angulars http.post不發送表單數據,所以你不能依靠PHPS $ _ POST。它發送json數據。你可以得到的數據,像這樣:

$request = json_decode(file_get_contents("php://input"), true); 
if(isset($request["data1"]) && $request["data1"] == "okpass"){ 
    echo "It works!"; 
    exit(0); 
} 
+0

是的,我剛讀這在這裏... 謝謝。 – Donovant

+0

但它不起作用 – Donovant

+0

@Donovant什麼不工作?如果你調試$ request,你會得到什麼 - 例如print_r($ request); – Steve

0

在PHP代碼,轉換成JSON好老$ _ POST這樣的:

//handles JSON posted arguments and stuffs them into $_POST 
//angular's $http makes JSON posts (not normal "form encoded") 
$content_type_args = explode(';', $_SERVER['CONTENT_TYPE']); //parse content_type string 
if ($content_type_args[0] == 'application/json') 
    $_POST = json_decode(file_get_contents('php://input'),true); 

//now continue to reference $_POST vars as usual 
相關問題