reactjs - TypeError:尝试在 Firefox 中的 POST 期间获取资源时出现 NetworkError
问题描述
我正在尝试使用 fetch 从同一台机器上的 React 应用程序向我的 Spring Boot 服务器发送 POST 请求。我允许我的 RestController 类中的 CrossOrigin。当我使用 Opera 浏览器时,GET 和 POST 请求都可以正常工作。使用 Firefox,我可以通过 GET 获取数据以使用 fetch 进行 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();
}
}
解决方案
推荐阅读
- javascript - 当有人右键单击并选择上下文菜单时,找到我的光标所在的 tr
- javascript - JavaScript 变量:var a =(3,4,7);
- r - 最后一个空格分隔符上的数据框中的单独列
- python - 传递值的形状是 (3514, 78),索引意味着 (1, 78)
- android - Recycler View Android中的ListView
- java - 什么是成员变量?它与实例变量相同吗?
- javascript - 我想调用 AngularJS 控制器来查询一个文件中的数据库并使用另一个文件中的值
- .net - 并行压缩大文件(~30 GB)?
- javascript - 创建自定义 JS 语法/速记
- asp.net - 为什么视图状态大小会如此增加