尝试在Firefox中的POST期间在获取中获取资源时出现TypeError:NetworkError

时间:2019-11-02 20:19:21

标签: reactjs spring-boot firefox httprequest fetch

我正在尝试使用提取从同一台机器上的React应用程序向我的Spring Boot服务器发送POST请求。我在RestController类中允许使用CrossOrigin。当我使用Opera浏览器时,GET和POST请求都可以正常工作。使用Firefox,我可以使用GET通过GET到React获取数据。但是,当我使用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();
    }
}

0 个答案:

没有答案