TypeError: NetworkError при попытке извлечь ресурс при получении во время POST в Firefox - PullRequest
0 голосов
/ 02 ноября 2019

Я пытаюсь отправить запрос POST на мой сервер Spring Boot из приложения React на той же машине, используя fetch. Я разрешил CrossOrigin из моего класса RestController. И запросы GET, и POST работают нормально, когда я использую браузер Opera. Используя Firefox, я могу получить данные через GET для React с использованием fetch. Но когда я использую fetch для POST, я не могу получить доступ к серверу, и консоль Firefox говорит:

TypeError: NetworkError when attempting to fetch resource.

Вот мой код запроса GET:

fetch('http://localhost:8080')
    .then(response => response.json())
    .then(data => this.setState({messages: data, currentUser: data[0].sender, isLoading: false}));

, а вот код POST:

fetch('http://localhost:8080', {
    method: 'POST',
    mode: 'cors',
    cache: 'no-cache',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({text: this.state.newMessageText, sender: this.state.currentUser})
});

Я пробовал с удалением области режима, кеша и заголовков, не работает. Вот мой класс сервера:

package com.ybalcanci.eternalchat.controller;

import com.ybalcanci.eternalchat.model.Message;
import com.ybalcanci.eternalchat.repository.MessageRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/")
@CrossOrigin(origins = {"http://localhost:3000", "http://localhost:5000"})
public class MainController {

    @Autowired
    private MessageRepository messageRepository;

    @PostMapping
    public Message newMessage(@RequestBody Message message) {
        System.out.println("New Post Request: " + message);
        return messageRepository.save(message);
    }

    @GetMapping
    public List<Message> messages(){
        return messageRepository.findAll();
    }
}
...