簡體   English   中英

Node.js Express接收郵遞員為空

[英]Node.js Express receiving postman as empty

我正在一個簡單的網站上工作,將JSON發送到API時遇到問題。 如果使用html / js發送,則JSON將以EMPTY的形式接收,但是使用郵遞員時,一切正常。

文件的結構只是在node.js上運行的服務器,node.js是一個帶有javascript的html頁面,用於構建JSON並將其發送。

如下所示的html文件代碼:

<!DOCTYPE html>
<html lang="en">
<head>
<body>
</head>
Receiver Address
<input type="text" placeholder="Write the target address..." id="target_address"></input><br>
Message
<input type="text" placeholder="Write the message in plain text..." id="message"></input><br>
<input type="submit" value="Send" id="accept"></input>
<br>
<div id="results"><div>
</body>
    <script src="js/jquery.js"></script>
    <script src="js/main.js"></script>
</html>

javascript文件是:

var URL_API = "http://localhost:3000/nr";
$("#accept").click(function(e) {
    e.preventDefault();
    var url = URL_API;
    var object = new Object();
    object.L = 1;
    object.B = ($("#target_address").val());
    object.message =($("#message").val());
    object.po = "ProofofOrigin";
    var data = JSON.stringify(object);
    console.log(data);

    $.ajax({
        url : url,
        type : 'POST',
        crossDomain : true,
        dataType : 'json',
        contentType : 'application',
        data : data,
        dataType:'json',

    }).done(function(data, status, jqxhr) {
            window.alert("Information sent successfully");
    console.log(data.B);
    }).fail(function(data) {
        window.alert("ERROR");

    });
});

然后,在收到給定POST時正在執行的節點部分:

router.post('/', function(req, res, next) {

  var updateStep = Number(req.body.L)+1;
  var ProofofOrigin = req.body.message + "Message signed - POO";
  var info_JSON = {
    address: req.body.B,
    step:  updateStep,
    message: req.body.message,
    po: req.body.po,
  };
  JSON.stringify(info_JSON);
  //res.send("Address :  " + req.body.B + " \nStep : " + req.body.L + " \nMessage : " + req.body.C + " \nPOO : " + req.body.Po);
  res.send(info_JSON);
  //console.log(info_JSON);
});

由於某種原因,主體上的req.body(應保存JSON的地方)完全為空,但是如果我使用Postman發送它,它將可以正常工作。 我不知道有什么問題。

請驗證:

在javascript中(客戶端):

contentType : 'application/json',

在nodejs(服務器端)中:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();
app.use(bodyParser.json());

app.post('/api/doSomething', function(req, res) {
   var mydata = req.body.mydata;
   ...
   return res.json({result: result});
});

您需要包括主體解析器模塊,以便能夠解析JSON主體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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