Передача данных с клиента на сервер - PullRequest
0 голосов
/ 29 марта 2019

В моем коде я хочу передать идентификатор от клиента к серверу. Я пытаюсь использовать 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>


Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Тщательно проверив, эта строка здесь в вашем запросе от клиента является причиной fetch("/myurl",{ ...

Если вы видите руководство по номеру MDN, используется значение fetch('http://example.com/movies.json'). Fetch API ожидает завершения url/uri вместе с протоколом (http, https) и т. Д.

Итак, ваш запрос должен быть таким:

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

0 голосов
/ 31 марта 2019

Вот код сервера:

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;
...