, поэтому я хочу отправить запрос на Laravel из внешнего интерфейса, используя ax ios, это перекрестное начало, поэтому внешний интерфейс находится в localhost:3000
, а внутренний - в localhost:8000/api
,
в Laravel Я уже применил промежуточное ПО CORS с this . в топоре ios я уже установил заголовки.
топор ios настройка
axios.defaults.baseURL = API_URL
axios.defaults.headers.common.Accept = 'application/json'
axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest'
axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*'
топор ios сообщение и удаление:
function create(){
return dispatch => {
return new Promise((resolve,reject)=>{
HTTP.get('/post/category/create')
.then((data)=>{
return resolve(data.data.data)
}).catch((data)=>{
return reject(data)
})
})
}
}
export function destroy(data){
return dispatch => {
return new Promise((resolve,reject)=>{
HTTP.delete(`/post/category/${data}`)
.then((data)=>{
return resolve(data.data)
}).catch((data)=>{
return reject(data)
})
})
}
}
как я вызываю функцию:
var SubmitCategory = async (e) => {
e.preventDefault();
var formData = new FormData(e.target)
await setSubmit(true);
await props.dispatch(insert(formData))
.then(data=>{
toaster(data.message,data.status)
props.history.replace({
pathname: `/post/category`
})
})
.catch(data=>{
toaster(data.message,"error")
setError(data)
})
await setSubmit(false)
}
<form autoComplete="off" onSubmit={e=>SubmitCategory(e)}> <<--- onSubmit
...////
как выглядит функция laravel:
public function store(Request $request)
{
// return response()->json($request,500);
try {
DB::beginTransaction();
$data = $request->all();
$cat = Category::create($data);
DB::commit();
return response()->json([
'status' => 'success',
'id' => $cat->id,
'code' => 200,
'message' => 'Category Created'
],200);
} catch (\Exception $e) {
DB::rollback();
return response()->json([
'status' => 'error',
'code' => 500,
'message' => $e->getMessage()
],500);
}
}
это происходит с каждым методом, поэтому, когда я создаю что-то, это создает две записи, и когда я что-то удалил, первый будет успешно удален, а второй нежелательный запрос не выполнен (потому что он уже удален).
Первой моей мыслью было то, что ax ios отправил два запроса, один из которых был OPTIONS
, Я провел несколько исследований в Google, из-за которых его невозможно отключить, и по-другому, но ничего не получилось.
Редактировать Cors. php Файл
<?php
'paths' => ['api/*'],
'allowed_methods' => ['*'],
'allowed_origins' => ['*'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 600,
'supports_credentials' => false,