我試圖建立一個簡單的網站,它有2個功能: 1.從服務器獲取字符串(sms)消息,並將其顯示在屏幕上 2發送(發佈)表單數據到發送回數據的服務器,這些數據將被記錄。爲什麼我得到的純json數據無法顯示
服務器代碼:
app.get('/sms', function (req, res) {
var smsMsg = fs.readFileSync('sms.txt');
console.log('Read File: ' + smsMsg.toString());
res.send(smsMsg.toString());
})
app.post('/result', function (req, res) {
console.log('Got Personal Information: ' + req.body.firstName + " " + req.body.lastName);
response = {
first_name:req.body.firstName,
last_name:req.body.lastName,
id:'0399'
};
console.log(response);
// value to a JSON string
res.setHeader('Content-Type', 'application/json');
res.send(JSON.stringify(response));
})
客戶端代碼:
<body>
<p>
<button onclick="sendRequestForSms()"> Get SMS From Server </button>
</br>
<h1 id="smsId"> SMS: <h1>
</br>
</p>
<p>
<form action="/result" method="post">
<fieldset>
<legend>Personal information:</legend>
First name:
<input type="text" name="firstName">
<br>
Last name:
<input type="text" name="lastName">
<br>
<input type="submit" value="Submit" id="submit">
</fieldset>
</form>
</p>
<script type="text/javascript">
var xmlhttp;
if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
console.log('State: ' + xmlhttp.readyState + ' status: ' + xmlhttp.status);
// 1: server connection established
// 4: request finished and response is ready
// 200: "OK"
// 404: Page not found
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
if (xmlhttp.getResponseHeader('Content-Type') == 'application/json')
{
console.log('Got Json');
var myArr = JSON.parse(xmlhttp.responseText);
console.log(myArr);
}
else
{
document.getElementById("smsId").innerHTML = xmlhttp.responseText;
}
}
};
function sendRequestForSms() {
xmlhttp.open("GET", "/sms", true);
xmlhttp.send();
}
</script>
</body>
當上「獲取短信從服務器」我得到的結果和上顯示用戶點擊相關元素('smsId')。但是當用戶提交表單時,我用json數據獲取新頁面(例如:'{「first_name」:「test1」,「last_name」:「test2」,「id」: 「0399」}「) ,所以我的客戶端代碼行:??
console.log('Got Json');
沒有達到,爲什麼客戶端回調函數不叫
我在做什麼錯
您沒有任何代碼來處理,所以瀏覽器發佈表單並正常加載結果。 – SLaks
服務器是否打印有'''有個人信息?''' – jaggedsoft