[英]Sent a POST request with JS, and handling the data with Node
我正在向網站添加聯系我部分。 我希望能夠使用 JS 從表單發送數據,然后使用 Node.js 接收和處理數據。 我知道有一些框架和庫可以處理這些事情,但我想從頭開始構建它,以便我更好地了解正在發生的事情。
我目前有一部分 JS(見下文)正在獲取表單數據,並將其作為 POST 請求發送到節點腳本,但我似乎無法理解節點發生的事情,或者如何使用節點腳本接收數據。 非常感謝為我指明正確方向的任何幫助。
const name = $(".name"); const email = $(".email"); const message = $(".message"); const submitButton = $(".submitButton"); const nameRegex = /([a-zA-Z\\s-])/g; const emailRegex = /^(([^<>()\\[\\]\\\\.,;:\\s@"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@"]+)*)|(".+"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/g; const messageRegex = /([a-zA-Z\\s.,?!$%&])/gm; const url = "../node/contactMeSubmissionHandler.js" submitButton.click(function(){ let nameContents = name.val().match(nameRegex).join(""); let emailContents = email.val().match(emailRegex).join(""); let messageContents = message.val().match(messageRegex).join(""); // if (emailRegex.test(emailContents) == true) { // let emailValid = emailContents; // } else { // console.log("Email is invalid"); // }; const data = { email: emailContents, name: nameContents, message: messageContents } $.post(url, data, function(data, status){ console.log(`${data} and status is ${status}`); }) })
我也喜歡從頭開始寫作。 這是從命令行調用以獲取令牌的工作代碼。
// clientEx.js
var http = require('http');
var fs = require('fs');
const _SERVER = "dcsmail.net"; /* dcsmail.net */
// Callback function is used to deal with response
//
var callback = function (response)
{
// update stream with data
var body = '';
response.on('data', function(data) {
body += data;
});
response.on ('end', function()
{
// Data received completely.
fs.writeFileSync ("temp.lst", body, 'utf8');
// console.log ("clientEx.js received: " + body);
});
}
if ((process.argv[2] == null) || (process.argv[3] == null) || (process.argv[4] == null) || (process.argv[5] == null))
{
console.log ("clientEx.js usage:<user email> <user password> <destination> <GUID>");
}
else
{
var Ef_email = encodeURI (process.argv[2]);
var Ef_pass = encodeURI (process.argv[3]);
var Ef_dest = encodeURI (process.argv[4]);
var Ef_guid = encodeURI (process.argv[5]);
var post_data = ("f_email=" + Ef_email +
"\&" + "f_pass=" + Ef_pass +
"\&" + "f_dest=" + Ef_dest +
"\&" + "f_guid=" + Ef_guid);
// Options to be used by request
var options = {
host: _SERVER,
port: '80',
path: '/DCSM/tokenP10.php',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Content-Length': Buffer.byteLength (post_data)
}
};
// console.log ("clientEx.js using " + _SERVER + ":" + options.port + options.path);
// request the token from the host
try
{
var req = http.request (options, callback);
req.write (post_data);
req.end();
}
catch (error)
{
fs.writeFileSync ("temp.lst", "Host access failed\n", 'utf8');
}
}
您應該能夠根據自己的需要進行調整。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.