код клиента
send() {
if (!!this.claim.fio && !!this.claim.place && !!this.claim.phone &&
!!this.claim.email && !!this.claim.numbers &&
!!this.claim.cords) {
Axios.post(`http://skarga.gopua.loc/claim/create`, this.claim,{
headers: {
'Content-Type': 'multipart/form-data'
}
} )
.then(({
data: {
token
}
}) => {
// if (redirect) router.push(redirect)
}).catch(({
response: {`введите сюда код
data
}
}) => {
this.snackbar = true
this.message = data.message
})
} else {
this.snackbar = true
this.message = 'Заполните все поля'
}
},
код сервера
public static function create()
{
// required headers
// header("Access-Control-Allow-Origin", "*");
// header("Access-Control-Allow-Methods", "GET, PUT, POST, DELETE");
// header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization");
// header("Access-Control-Allow-Origin: http://localhost:8080");
// header("Content-Type: multipart/form-data");
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
header("Access-Control-Max-Age: 3600");
header("Access-Control-Allow-Headers: Origin, Content-Type, Access-Control-Allow-Headers, Authorization, X-Requested-With");
// get posted data
$data = json_decode(file_get_contents("php://input"));
$claim = new ClaimModel();
// set product property values
$claim->fio= $data->fio;
$claim->registration = $data->place;
$claim->number = $data->phone;
$claim->email = $data->email;
$claim->numbers = $data->numbers;
$claim->created = date('Y-m-d H:i:s');
$claim->data = $data->upFiles;
// create the product
if ($claim->create()) {
// set response code - 201 created
http_response_code(201);
// tell the user
echo json_encode(array("message" => "Product was created."));
} // if unable to create the product, tell the user
else {
// set response code - 503 service unavailable
http_response_code(503);
// tell the user
echo json_encode(array("message" => "Unable to create product."));
}
}
суть в том, что такую ошибку мне выдает vuejs Failed to load http://skarga.gopua.loc/claim/create: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
Гуглил, не смог найти ответ. Знакомых знатаков php нет по этому пишу сюда.
Данная ошибка возникает, когда ваше spa делает запрос на сторонний сервер. Тут есть несколько вариантов.
Если файл ваш и находится на вашем сайте то просто изменить линк на относительную ссылку к примеру /claim/create
Если файл не ваш и вы обращаетесь к стороннему api, нужно чтобы ваше spa обращалось к вашему серверу к php файлу, который выполнит запрос и вернет данные.
Если проблема только на локальной машине и нужно устранить временно, то установите для хрома расширение которое позволит выполнить с локальной машины запросы на сторонние серверы. Хочу предупредить что при включении данного расширения перестают нормально работать youtube tweeter fb и другие сайты, поэтому не стоит держать постоянно его включенным, точнее нужно включать только по надобности.
Проблема оказалась не в коде. Локально как починить не знал, а на своем серве смог. Строка add_header помогла ]1
Позже я и локально починил эту проблему добавив эти строки в свой .htaccess файл
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "*"
Виртуальный выделенный сервер (VDS) становится отличным выбором
Работаю в notepad++Он не подсказывает мне ошибки в моем коде так, как это делает к примеру php sandbox
Получаю данные о товаре из базы sqlite с помощью следующего кода:
Нужно организовать создание и хранение данных на сайте php+mysql: - актуальное наличие, которое можно менять вручную (модель, размер, цвет, количество)...
В чем проблема при формирования PDF-файла? Запрос отправляется с помощью AJAX