用 ajax 丢 json 呼叫 php
url: "server.php", //傳送目的地
dataType: "json", //資料格式
data: { //傳送資料
name: $("#name").val(), //表單欄位 ID name
passid: $("#passid").val() //表單欄位 ID passid
},
success: function(data) {
if (data.name) { //如果後端回傳 json 資料有 name
$("#datainput")[0].reset(); //重設 ID 為 datainput 的 form (表單)
$("#result").html('<font color="#007500">您名字與ID : <font color="#0000ff">' + data.name + '</font: <font color="#0000ff">' + data.passid + '</font></font>');
} else { //否則讀取後端回傳 json 資料 errorMsg 顯示錯誤訊息
$("#datainput")[0].reset(); //重設 ID 為 datainput 的 form (表單)
$("#result").html('<font color="#ff0000">' + data.errorMsg + '</font>');
}
},
error: function(jqXHR) {
$("#datainput")[0].reset(); //重設 ID 為 datainput 的 form (表單)
$("#result").html('<font color="#ff0000">發生錯誤:' + jqXHR.status + '</font>');
}
server.php
<?php
header('Content-Type: application/json; charset=UTF-8'); //設定資料類型為 json,編碼 utf-8
if ($_SERVER['REQUEST_METHOD'] == "POST") { //如果是 POST 請求
@$name = $_POST["name"]; //取得 name POST 值
@$passid = $_POST["passid"]; //取得 passid POST 值
echo json_encode(array(
'name' => $name,
'passid' => $passid ));
} else {
//回傳 errorMsg json 資料
echo json_encode(array(
'errorMsg' => '請求無效,只允許 POST 方式訪問!'
));
}
?>
這部分沒有問題
用 curl 一直無法成功 或用Postman 也是無法成功
curl -H "Content-Type: application/json" \
-X POST \
--data '{"name":"tryit","passid":"password"}' \
http://127.0.0.1:50080/server.php
那 curl 要如何寫才會成功 ?
curl "http://127.0.0.1:50080/server.php" --data "name=tryit&passid=password"
有帶data的,curl應該會自動認為是post
然後 chrome 的開發者模式的network頁面,可以直接copy request成curl命令...