React JS API Post 抛出 ERR_ABORTED 415
React JS API Post Throws ERR_ABORTED 415
当我尝试将一些数据保存到本地计算机的 Web 服务中时,App.js 中的以下请求给出 net::ERR_ABORTED 415
浏览器控制台
浏览器网络选项卡
App.js
import React, {Component} from 'react';
class App extends Component {
async postData () {
try {
let result = await fetch('http://127.0.0.1:6060/jpa/save', {
method: 'post',
mode: 'no-cors',
headers: {
'Accept': 'application/json',
'Content-type': 'application/json',
},
body: JSON.stringify({
name: 'Switch5',
state: '1'
})
});
console.log(result)
} catch(e) {
console.log(e)
}
}
render() {
return (
<div className="App">
<button onClick={ () => this.postData() }>Press me to post some data</button>
</div>
);
}
}
export default App;
如果我使用邮递员,位于我本地机器上的 Web 服务正在运行
除此之外,如果我使用 webhook 测试 API,它工作正常
class App extends Component {
async postData () {
try {
let result = await fetch('https://webhook.site/40336c89-decc-4abc-9e62-9181316a4c85', {
method: 'post',
mode: 'no-cors',
headers: {
'Accept': 'application/json',
'Content-type': 'application/json',
},
body: JSON.stringify({
key1: 'myusername'
})
});
我认为问题在于您如何编写获取数据的方法。编辑调用 postData 方法的行。我只编辑了 postData 调用的第一行。
postData = async () => {
try {
.....
} catch(e) {
console.log(e)
}
}
使用“axios”管理到 post
步骤 01:在 App.js
中添加了以下内容
axios.post('http://127.0.0.1:6060/jpa/save', {
name: 'Switch6',
state: '1'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
第 02 步:这是给定的跨源问题。所以将@CrossOrigin 添加到 Spring Boot Web 服务控制器如下
@RequestMapping("jpa")
public class JpaController {
@Autowired
private UserJpaRepository userJpaRepository;
@CrossOrigin
@PostMapping("save")
public String saveUser(@RequestBody Switches user) {
System.out.println("Request came");
userJpaRepository.save(user);
return "User Saved";
}
现在保存数据成功
当我尝试将一些数据保存到本地计算机的 Web 服务中时,App.js 中的以下请求给出 net::ERR_ABORTED 415
浏览器控制台
浏览器网络选项卡
App.js
import React, {Component} from 'react';
class App extends Component {
async postData () {
try {
let result = await fetch('http://127.0.0.1:6060/jpa/save', {
method: 'post',
mode: 'no-cors',
headers: {
'Accept': 'application/json',
'Content-type': 'application/json',
},
body: JSON.stringify({
name: 'Switch5',
state: '1'
})
});
console.log(result)
} catch(e) {
console.log(e)
}
}
render() {
return (
<div className="App">
<button onClick={ () => this.postData() }>Press me to post some data</button>
</div>
);
}
}
export default App;
如果我使用邮递员,位于我本地机器上的 Web 服务正在运行
除此之外,如果我使用 webhook 测试 API,它工作正常
class App extends Component {
async postData () {
try {
let result = await fetch('https://webhook.site/40336c89-decc-4abc-9e62-9181316a4c85', {
method: 'post',
mode: 'no-cors',
headers: {
'Accept': 'application/json',
'Content-type': 'application/json',
},
body: JSON.stringify({
key1: 'myusername'
})
});
我认为问题在于您如何编写获取数据的方法。编辑调用 postData 方法的行。我只编辑了 postData 调用的第一行。
postData = async () => {
try {
.....
} catch(e) {
console.log(e)
}
}
使用“axios”管理到 post
步骤 01:在 App.js
中添加了以下内容axios.post('http://127.0.0.1:6060/jpa/save', {
name: 'Switch6',
state: '1'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
第 02 步:这是给定的跨源问题。所以将@CrossOrigin 添加到 Spring Boot Web 服务控制器如下
@RequestMapping("jpa")
public class JpaController {
@Autowired
private UserJpaRepository userJpaRepository;
@CrossOrigin
@PostMapping("save")
public String saveUser(@RequestBody Switches user) {
System.out.println("Request came");
userJpaRepository.save(user);
return "User Saved";
}
现在保存数据成功