Ошибка CORS при использовании API Yii2 и интерфейса ReactJSPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Ошибка CORS при использовании API Yii2 и интерфейса ReactJS

Сообщение Anonymous »

Этот вопрос может показаться очень простым для тех, кто использует Yii2 API и React Js. Я новичок в сочетании этой технологии.

У меня есть API Yii2 с поведением, настроенным, как показано здесь

public $serializer = [
'class' => 'yii\rest\Serializer',
'collectionEnvelope' => 'items',
];

public static function allowedDomains()
{
return [
'*' // star allows all domains
'http://localhost:3000',
];
}

public function behaviors()
{
return array_merge(parent::behaviors(), [

// For cross-domain AJAX request
'corsFilter' => [
'class' => \yii\filters\Cors::className(),
'cors' => [
// restrict access to domains:
'Origin'=> static::allowedDomains(),
'Access-Control-Request-Method' => ['POST','GET','PUT','OPTIONS'],
'Access-Control-Allow-Credentials' => false,
'Access-Control-Max-Age' => 3600,// Cache (seconds)
'Access-Control-Request-Headers' => ['*'],
'Access-Control-Allow-Origin' => false,

],
],

]);
}


когда я использую запрос на выборку к этому API с помощью GET, он работает отлично и возвращает данные в мой интерфейс реагирования.

Теперь я пытаюсь реализовать регистрацию в своем приложении, где мне нужно отправлять данные из моего интерфейса с помощью POST в мой API. (Я реализовал свое действие регистрации, и оно хорошо работает с почтальоном.) Когда я пытаюсь Отправьте запрос на публикацию к этому API, я получаю ошибку (отсутствует заголовок CORS «Access-Control-Allow-Origin») на моей консоли. Ниже приведен мой запрос Reactjs, и я действительно не знаю, чего мне не хватает. Любая помощь в этом вопросе будет принята с благодарностью.

//this function is to save data to the API
saveUser = (user) => {

fetch(URL_SIGNUPUSER, {
method: 'post',
mode: "cors",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
//'Access-Control-Allow-Credentials': "*"
},
body: JSON.stringify({
name:user.name,
username:user.username,
email:user.email,
password:user.password,
})
}).then(res=>res.json())
.then(()=>{
this.setState({
user: { name:'',
username:'',
email:'',
password:'',
confirm_password:'',
},
success:true,
error:false
})
});
}


Подробнее здесь: https://stackoverflow.com/questions/524 ... s-frontend
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»