AI Analysis: fix CSRF and use axios for reliability
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import AdminLayout from '@/Layouts/AdminLayout.vue';
|
import AdminLayout from '@/Layouts/AdminLayout.vue';
|
||||||
|
import axios from 'axios';
|
||||||
import { Head, Link, router, useForm, usePage } from '@inertiajs/vue3';
|
import { Head, Link, router, useForm, usePage } from '@inertiajs/vue3';
|
||||||
import { ref, computed } from 'vue';
|
import { ref, computed } from 'vue';
|
||||||
import { marked } from 'marked';
|
import { marked } from 'marked';
|
||||||
@@ -132,22 +133,13 @@ const runAI = async () => {
|
|||||||
|
|
||||||
isAnalyzing.value = true;
|
isAnalyzing.value = true;
|
||||||
try {
|
try {
|
||||||
const response = await fetch(route('admin.candidates.analyze', props.candidate.id), {
|
const response = await axios.post(route('admin.candidates.analyze', props.candidate.id), {
|
||||||
method: 'POST',
|
provider: selectedProvider.value
|
||||||
headers: {
|
|
||||||
'Content-Type': 'application/json',
|
|
||||||
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute('content')
|
|
||||||
},
|
|
||||||
body: JSON.stringify({ provider: selectedProvider.value })
|
|
||||||
});
|
});
|
||||||
const data = await response.json();
|
aiAnalysis.value = response.data;
|
||||||
if (data.error) {
|
|
||||||
alert(data.error);
|
|
||||||
} else {
|
|
||||||
aiAnalysis.value = data;
|
|
||||||
}
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
alert("Une erreur est survenue lors de l'analyse.");
|
console.error('AI Analysis Error:', error);
|
||||||
|
alert(error.response?.data?.error || "Une erreur est survenue lors de l'analyse.");
|
||||||
} finally {
|
} finally {
|
||||||
isAnalyzing.value = false;
|
isAnalyzing.value = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||||
|
|
||||||
<title inertia>{{ config('app.name', 'Laravel') }}</title>
|
<title inertia>{{ config('app.name', 'Laravel') }}</title>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user