将数据从客户端传递到服务器

问题描述 投票:0回答:2

在我的代码中,我想将id从客户端传递给服务器。我正在尝试使用fetch将Content-Type设置为Application / json,但看起来我们遇到了一些问题(我对请求进行了分析并且没有创建正文)。有没有简单的方法将数据从客户端传递到服务器?

{#each accounts}}
    <form action="/users/chat" method="POST">
      <div class="form-group">
        <p>{{@index}}</p>
        <label for="name" value={{username}}>{{username}}</label>
      </div>
      <div class="form-group">
        <label for="name">{{email}}</label>
      </div>
      <button class="myButton" id="{{@index}}">chat</button>
      </form>

    {{else}}
    <p>No account</p>
    {{/each}}


<script>

  const buttons = document.getElementsByClassName('myButton');
  for (var i = 0; i < buttons.length; i++) {
    buttons[i].addEventListener('click',  function(e) {
      let ident=this.id;
      console.log(ident);
      console.log('button was clicked');
   fetch("/myurl",{
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json'
    },
    method: "POST",
    body: JSON.stringify({id : ident})
})    
}



</script>


javascript express fetch
2个回答
0
投票

这是服务器的代码:

var express = require('express');
var router = express.Router();
var app = express();
var bcrypt = require('bcryptjs');
const db = require('../config/database');
const Account = require('../models/Account');
const chat = require('../models/chat');
const Sequelize = require('sequelize');
const Op = Sequelize.Op;
var passport = require('passport');
LocalStrategy = require('passport-local').Strategy;
const {ensureAuthenticated}=require('../config/auth');
app.use(express.urlencoded());
app.use(express.json());

//Socket
const PORTS = process.env.PORT || 7001;
var client = require('socket.io').listen((PORTS, console.log`SOCKET started on port ${PORTS}`)).sockets;

var password;
var username;
var accounts;

//Register
router.get('/register', function(req,res){
    res.render('register');
});

//CHAT
router.get('/chat', ensureAuthenticated, (req,res)=>{
    console.log(request.body.user.id);
    res.render('chat');
});
    module.exports=router;

0
投票

仔细检查后,这条线在您的客户请求中是原因fetch("/myurl",{ ...

如果您在MDN上看到指南,则使用的是fetch('http://example.com/movies.json')Fetch API期待完整的url/uri以及协议(http, https)等。

所以你的要求应该是这样的:

fetch("http://yourdomain.com", { ...

© www.soinside.com 2019 - 2024. All rights reserved.