2017-11-04 5 views
0

単純な例をコピーしようとしましたが、まだjsonの投稿要求を解析できません、 アイデア? borwser(firefox)ネットワークのタブを見て、json paramsのリクエストが表示されます。 しかし、サーバーログは空になります。シンプルエクスプレスjsonパーサー

クライアント

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="utf-8"> 
<script type="text/javascript"> 

     var man = { 
      name:'name', 
      fam:'familiy' 
     }; 

    var xhttp = new XMLHttpRequest(); 
    var url = "http://localhost:8080/"; 
    xhttp.open("post", url, true); 
    xhttp.send(JSON.stringify(man)); 

    </script> 
    <title>Json Test</title> 
    </head> 
    <body> 
    Json Test 
    </body> 
</html> 

サーバー

//require the express nodejs module 
var express = require('express'), 
    //set an instance of exress 
    app = express(), 
    //require the body-parser nodejs module 
    bodyParser = require('body-parser'), 
    //require the path nodejs module 
    path = require("path"); 



//support parsing of application/json type post data 
app.use(bodyParser.json()); 

app.post('/', function(req, res){ 
    res.setHeader('Content-Type', 'application/json'); 
    console.log(req.body); 
    res.send("done"); 
}); 


//Start listen on port 
const port = 8080; 
app.listen(port); 
console.log("Node js listen on port " + port + "..."); 
+0

(今働いて)私もこれらを忘れてしまった推測: "^ 1.18.2"、 "表現":「^ 4.16.2 " –

答えて

0

.... が、私は "ボディ・パーサ"

app.use(function (req, res, next) { 
    res.setHeader('Access-Control-Allow-Origin', '*'); 
    res.setHeader('Access-Control-Allow-Methods', 'GET, **POST**, PUT, DELETE'); 
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type'); 
    res.setHeader('Access-Control-Allow-Credentials', true); 
    next(); 
    }); 
0

あなたのAJAX要求でContent-Typeヘッダを設定されていません。以下に変更してください。うまく

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <script type="text/javascript"> 

    var man = { 
     name:'name', 
     fam:'familiy' 
    }; 

    var xhttp = new XMLHttpRequest(); 
    var url = "http://localhost:8080/"; 
    xhttp.open("post", url, true); 
    xhttp.setRequestHeader('Content-Type', 'application/json'); 
    xhttp.send(JSON.stringify(man)); 

    </script> 
    <title>Json Test</title> 
</head> 
<body> 
Json Test 
</body> 
</html> 
+0

は依然として実際には動作しません.HTTPリクエストヘッダはまだです:\ n Content-Typetext/html; charset = utf-8。理由は分かりませんが、別のページで作業していました。 –

+0

別のページで作業しているとはどういう意味ですか? corsエラーはありますか? –

+0

@ YanivPeretz FYI、クロスドメインAJAXリクエストに対してCORSを有効にする場合は、corsパッケージを使用できます。 https://www.npmjs.com/package/corsを確認してください –

関連する問題