【发布时间】:2021-04-13 23:42:30
【问题描述】:
我正在尝试将 React.js 中的数据发布到本地主机 insert.php 文件。当我从 reactjs 提交表单时,它在控制台上出现错误错误是:
- 从源“http://localhost:3000”访问“http://localhost/reactphpdemo/connect.php”处的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。
- xhr.js:177 POST http://localhost/reactphpdemo/connect.php net::ERR_FAILED
- createError.js:16 Uncaught (in promise) 错误:createError (createError.js:16) 处的网络错误 XMLHttpRequest.handleError (xhr.js:84)
这是我的代码
import React, { Component } from 'react';
import axios from 'axios';
export default class Insert extends Component {
constructor(props){
super(props);
this.onSubmit = this.onSubmit.bind(this);
this.state={
first_name:'',
last_name:'',
email:''
}
}
onSubmit(e){
e.preventDefault();
const obj = {
headers:{'Access-Control-Allow-Origin':'*'},
first_name:this.state.first_name,
last_name:this.state.last_name,
email:this.state.email,
};
axios.post('http://localhost/reactphpdemo/insert.php',obj).then(res=>console.log(res.data));
this.setState({
first_name:'',
last_name:'',
email:''
})
}
render() {
return (
<form onSubmit={this.onSubmit}>
<div class="form-group">
<input type="submit" value="Register User" class="btn btn-primary" name="name" />
</div>
</form>
)
}
【问题讨论】:
-
标头必须由服务器 (PHP) 而不是客户端 (JS) 发送。 Origin is not allowed by Access-Control-Allow-Origin