Как часть проекта, который я делаю, я написал сервер приложений Spring Framework на Java. Теперь я хочу написать клиент для него, используя JavaScript, используя webpack. В одном из моих файлов я вызываю fetch с методом POST, но по какой-то причине он вызывается дважды, и мой сервер выдает исключение (потому что он пытается поместить один и тот же объект с тем же ключом в базу данных), я думал, что ему нужно что-то делать с помощью CORS я включил добавленный файл WebConfig на свой сервер из источника, найденного на этом сайте. Но, к сожалению, это все еще происходит, и я не знаю почему.

мой файл JS с извлечением:

const button = document.getElementById('register'); const url = "http://localhost:8083/playground/users"; let form; button.addEventListener("click", async () ={amp}gt; { form = { email: document.getElementById("email").value, username: document.getElementById("username").value, avatar: document.getElementById("avatar").value, role: "Guest" }; const response = await fetch(url, { method: "POST", mode: "cors", headers: { "Content-Type": "application/json", }, body: JSON.stringify(form), }); const resultJson = await response.json(); console.log(resultJson); //location.href='./confirm.html'; }); 

webpack.config.js:

 const HtmlWebpackPlugin = require('html-webpack-plugin'); const path = require('path'); const JS_JSX_PATTERN = /.jsx?$/; module.exports = { entry: './src/js/index.js', output: { path: __dirname, filename: 'bundle.js' }, plugins: [ new HtmlWebpackPlugin({ filename: 'index.html', template: 'src/index.html' }), new HtmlWebpackPlugin({ filename: 'confirm.html', template: 'src/confirm.html', chunks: [] }) ], module: { loaders: [ { test: JS_JSX_PATTERN, exclude: /node_modules/, loader: 'babel-loader', query: { presets: ['react', 'es2015', 'stage-1'] } } ] }, resolve: { extensions: ['', '.js', '.jsx'] }, devServer: { historyApiFallback: true, contentBase: './', watchOptions: { aggregateTimeout: 300, poll: 1000 } } }; 

и результат вызова fetch заставляет его вызываться дважды, как можно увидеть здесь: введите описание изображения здесь

что я тут не так делаю?

Это может быть из-за неправильного пути к комплекту, попробуйте использовать path.resolve («ваш выходной каталог»)

 .... module.exports = { entry: './src/js/index.js', output: { path: path.resolve(__dirname), filename: 'bundle.js' }, ... 

Похоже, вы используете собственный шаблон HtmlWebpackPlugin — есть ли у вас тег сценария, указывающий на ./bundle.js в этом ./bundle.js src/index.html , случайно?

HtmlWebpackPlugin предназначен для автоматического добавления пакета сценариев. Глядя на скриншот, я предполагаю, что VM....bundle.js — это тот, который подается из памяти webpack-dev-server , а второй bunde.js — тот, который вы создали локально в предыдущей webpack build .