私はvanilla JSでいくつかのajax呼び出しをしようとしています。 バックエンドでは、エクスプレスフレームワークのノードで作業しています。Node、Express&vanilla JSでのPOST Ajax呼び出し
送信したいデータが実際にバックエンドに届いていないようです。誰が何が起こっているアイデアを持っていますか?
マイJavascriptを:私はデータオブジェクトを反復処理するとき
<form id='ajax_form' method='POST' action='/admin/new/tag'>
<input type='text' name='tag' id="tag">
<button type='submit'>Create new tag</button>
</form>
<script>
var ajaxForm = document.querySelector("#ajax_form").addEventListener("submit", function(e){
e.preventDefault();
var form = e.target;
var data = new FormData(form);
var request = new XMLHttpRequest();
request.onreadystatechange = function(){
if(request.response){
[...]
}
}
request.open(form.method, form.action)
request.send(data);
});
</script>
、すべてが、それは、私がフォームを提出したいキーと値を返す必要があるようであるように思われます。 I console.log(req.body.tag)
、私はちょうどUndefined
を取得し、req.body
はちょうど空のオブジェクトである場合には
var express = require("express"),
app = express(),
mysql = require("mysql"),
bodyParser = require("body-parser");
app.use(bodyParser.urlencoded({extended: true}));
app.post('/admin/new/tag', function(req, res){
var tag = {tag_name: req.body.tag};
var q = 'INSERT INTO tags SET ?';
connection.query(q, tag, function(error, results, fields){
if (error) throw error;
res.send('succeed');
});
});
:
これが私のバックエンドのセットアップです。 データベースtag_name
はNULLであってはならないため、データベースでもエラーが発生します。
ネットワークパネルを見ると、503サービスは利用できませんと表示されます。
ご回答いただきありがとうございます。
action = '/ ...'はサポートされていますか?それはURLの権利ですか?そして、それは/できません... –
私はそれらが私の質問に不可欠ではないと思ったので、私はそれらを省略しました。彼らはサポートされています。私はもともとそれを通常のポストリクエストとしていたが、すべてうまくいった。私はあなたが望むならば、あなたのURLを追加することができます。 – WiMa1992
うん!混乱を避けるために適切なコードを追加してください。 ログ要求オブジェクトをコンソール化しようとしました。そして、あなたが何かreq.bodyを探すならば、 –