簡體   English   中英

Node.js Express.js 發送 Jquery Ajax 帖子引發持續錯誤 - 我卡住了

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM