Reactjs с Laravel REST API: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin» - PullRequest
0 голосов
/ 08 сентября 2018

Итак, у меня есть проект, который я создаю с помощью ReactJS. Я пытаюсь войти, и это мой React Code:

handleClick(event){
var apiBaseUrl = "http://127.0.0.1:8000/api/auth/login";
var self = this;
var payload={
    "email":this.state.email,
    "password":this.state.password
}
axios.post(apiBaseUrl, payload)
.then(function (response) {
    console.log(response);
    if(response.data.code == 200){
        console.log("Login successfull");
        var uploadScreen=[];
        uploadScreen.push(<UploadScreen appContext={self.props.appContext}/>)
        self.props.appContext.setState({loginPage:[],uploadScreen:uploadScreen})
    }
    else if(response.data.code == 204){
        console.log("Username password do not match");
        alert("username password do not match")
    }
    else{
        console.log("Username does not exists");
        alert("Username does not exist");
    }
})
.catch(function (error) {
console.log(error);
});
}

Я не совсем знаком с React, и я только что получил этот код здесь Просто попробую, прежде чем редактировать. Я пытаюсь получить доступ к своему API, который я создал с помощью Laravel 5.3, но получаю ошибку:

Не удалось загрузить http://127.0.0.1:8000/api/auth/login: Ответ на предварительный запрос не проходит проверку контроля доступа: нет Заголовок «Access-Control-Allow-Origin» присутствует в запрошенном ресурс. Происхождение 'http://localhost:3000' поэтому не допускается доступ.

Ошибка: ошибка сети в createError (createError.js: 16) в XMLHttpRequest.handleError (xhr.js: 87)

Я искал ответы, и они сказали, что я должен использовать CORS. У меня есть Laravel CORS.

мой cors.php в конфиге

'supportsCredentials' => false,
'allowedOrigins' => ['*'],
'allowedHeaders' => ['*'],
'allowedMethods' => ['*'],
'exposedHeaders' => [],
'maxAge' => 0,
'hosts' => [],

1 Ответ

0 голосов
/ 08 сентября 2018

нужно структурировать полезную нагрузку.

var payload = JSON.stringify({yourdata: yourdata});

, а также попробуйте добавить заголовок следующим образом.

var config = {
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
  },
  withCredentials: false
}

axios.post(apiBaseUrl, payload, config)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...