Я часами изучал это и просто не могу найти ответ, который мне нужен.Извините, если меня об этом спросили, и я провалил свои исследования, если это так, просто свяжите полезную страницу переполнения стека, и я буду счастлив.Вот краткое изложение моей проблемы.
Я учусь в классе CS4, и мы разрабатываем собственную веб-страницу и должны использовать сервер нашей школы для хранения базы данных.Мы узнали php и как использовать mySQL, и наши запросы POST и GET для сервера выглядели бы так (написано на PHP):
require("config.php");
$db = new PDO("mysql:dbname=" . $GLOBALS["database"] . ";host=" . $GLOBALS["hostname"] . ";port=" . $GLOBALS["port"],
$GLOBALS["username"], $GLOBALS["password"]);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$query = "SELECT * FROM Karrsen_ajaxtest";
$statement = $db->prepare($query);
$statement->execute();
$rows = $statement->fetchAll();
foreach ($rows as $row) {
print(strip_tags($row['name']) . "<br/>");
}
Где конфигурация была установлена правильно.
ТеперьЯ делаю мой последний проект React.js и должен запросить с того же сервера.Я хочу использовать встроенную систему Fetch, но она выдает ошибки CORS, и я также не знаю, как добавить вышеупомянутое имя пользователя, пароль, базу данных и имя хоста.Я тщательно просмотрел MDN-webdocs (подумал, что это может быть заголовок запроса, учетные данные, режим или целостность?), Но не нашел ничего, кроме того, что сказано, нужно ли добавлять себя в Access-Control-Allow-Origin на сервере (но я не могу редактировать настройки своего школьного сервера.)
Как мне добавить эти учетные данные?Буду ли я продолжать получать ошибку CORS.Извините, если это пустая трата вашего времени, не слишком много знаете о переполнении стека
* РЕДАКТИРОВАТЬ У меня есть приложение реагирования, в котором мой единственный компонент прямо сейчас будет частью входа в систему.Это называется Login.JS.Прямо сейчас все, что я хочу, это получить данные из базы данных при отправке формы.Вот мой код.
import React from 'react';
class Login extends React.Component{
constructor (props) {
super(props);
this.state = {
userName: "",
password: "",
hits: [],
};
this.handleChange = this.handleChange.bind(this);
this.handleSubmit = this.handleSubmit.bind(this);
}
handleChange = event => {
this.setState({
[event.target.name]: event.target.value
});
}
handleSubmit(e) {
console.log(e);
e.preventDefault();
this.updateFromDB();
}
formValidation() {
return this.state.password.length > 0 && this.state.userName.length > 0;
}
updateFromDB(){
let API = "THE_URL_FOR_MY_DATABASE";
let query = "SELECT * FROM karrsen_test";
fetch(API + query, {
method: 'POST',
mode: 'cors'
})
.then(response => response.json())
.then(data => this.setState({ hits: data.hits }));
}
render (){
return(
<div className= "Login-form">
<form onSubmit = {(e) => this.handleSubmit(e)}>
<label>
Username:
<input
type = "text"
value = {this.state.userName}
onChange = {this.handleChange}
name = "userName"/>
</label>
<label>
Password:
<input
type = "text"
value = {this.state.password}
onChange = {this.handleChange}
name = "password" />
</label>
<input
disabled = {!this.formValidation()}
type = "submit" />
</form>
</div>
)
}
}
export default Login;