[英]Send same data to view in POST and GET in node.js / Express.js
[英]Node.js Express.js Send Jquery Ajax Post throws Constant Error - I'm stuck
我正在嘗試從 Node.js 到 Ajax 進行非常簡單的返回。 我正在使用 Express.js 來實現這一點。
為了編寫和管理 JSON 文件,我有上一條路線的代碼,它工作得很好。
問題來自第二條路線,當我嘗試使用 JQuery ajax 成功方法返回某些內容時,它總是拋出錯誤。 這是我發現的最簡單的發送形式,但仍然不起作用。
索引.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test 2</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
</head>
<body>
Cod: <input type="text" name="cod" id="cod">
Text: <input type="text" name="text" id="text">
<button id="boton">PRUEBA</button>
<button id="getText">GET TEXT</button>
<script>
$('#boton').click(function() {
let cod=$('#cod').val();
let text=$('#text').val();
console.log(cod);
console.log(text);
$.ajax({
type: 'POST',
data: {
cod: cod,
text: text,
},
url: 'http://localhost:1337/prueba'
});
});
$('#getText').click(function() {
$.ajax({
type: 'POST',
data: {
},
success: (result) => {
console.log(result);
},
error: (result) => {
console.log('ERROR');
},
url: 'http://localhost:1337/getText'
});
});
</script>
</body>
</html>
應用程序.js
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/prueba', function(req, res) {
// ... First Route. The code here works just fine so I don't add it here.
});
app.post('/getText', function(req, res) {
let text = "Hola mundo";
console.log(text);
res.send(text);
});
app.listen(1337, () => console.log('Started server at http://localhost:1337!'));
當您單擊“獲取文本”按鈕時,它會進入 app.js 中的“/getText”路徑內,並且控制台會在 node.js 終端上記錄文本,所以這不是問題。
問題似乎來自 res.send() function。
在瀏覽器控制台中,它會記錄“錯誤”,因為它出現在與“獲取文本”按鈕關聯的 ajax 錯誤方法中。 我找不到讓它返回成功的方法。
有人可以幫我嗎? 我非常堅持這個項目的工作。
看起來像CORS問題...您是否從同一位置提供 index.html?
它可以從節點服務 index.html
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: true }));
app.post('/prueba', function(req, res) {
// ... First Route. The code here works just fine so I don't add it here.
});
app.post('/getText', function(req, res) {
let text = "Hola mundo";
console.log(text);
res.send(text);
});
app.get('*', function (req, res) {
res.sendFile('index.html', {root: '.'})
})
app.listen(1337, () => console.log('Started server at http://localhost:1337!'));
node/express 有幾個選項,例如express 中間件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.