Я получаю ошибку 419 в laravel при отображении чего-либо на карте, хотя мой путь указан правильно - PullRequest
0 голосов
/ 26 сентября 2018

Я создаю приложение с использованием API Google Maps, которое позволяет пользователю добавлять маркер в определенном месте, но когда я нажимаю на карту, чтобы добавить местоположение, все данные, которые я получаю, верны, но я получаю код ответа ошибки19 ... это мой код для сохранения данных

function saveData(lat,lng) 
{

console.log("LAT:"+lat+" LNG:"+lng);

var description = document.getElementById('manual_description').value;
var formData = new FormData();
console.log("DESC:"+description);
formData.append("latitude", lat); //outputs correctly
formData.append("longitude", lng);//outputs correctly
formData.append("description", description); //outputs correctly
console.log(formData.get("latitude")+" "+formData.get("longitude")+" "+formData.get("description"));

downloadUrl(formData, function(data, responseCode) {
            console.log("RESP:"+responseCode);
            console.log(data.length);
            if (responseCode === 200  && data.length > 1) {
                var markerId = getMarkerUniqueId(lat,lng); // get marker id by using clicked point's coordinate
                var manual_marker = markers[markerId]; // find marker
                manual_marker.setIcon(purple_icon);
                infowindow.close();
                infowindow.setContent("<div style=' color: purple; font-size: 25px;'> Waiting for admin confirm!!</div>");
                infowindow.open(map, manual_marker);

            }else{
                console.log("RESPONSECODE: "+ responseCode); //419
                console.log("DATA: "+data); //html data with title of Page Expired
                infowindow.setContent("<div style='color: red; font-size: 25px;'>Inserting Errors</div>");
            }
        });

   function downloadUrl(formData, callback) 
   {

        var xhttp = new XMLHttpRequest;
        xhttp.onreadystatechange = function() {
            console.log(xhttp.readyState);
            if (xhttp.readyState == 4) {
                callback(xhttp.responseText, xhttp.status);
            }
        };

        xhttp.open("POST", "http://localhost/cacheFinder/public/save");
        xhttp.setRequestHeader('X-CSRF-TOKEN', '{{ csrf_token() }}');
        xhttp.send(formData);
    }

это мой маршрут Route::post('save', 'MarkersController@save');

и это функция сохранения:

 public function save(Request $request){

$lat = $request->input("latitude");
$lng = $request->input("longitude");
$description = $request->input("description");

Marker::create([

        'latitude'=>$lat,
        'longitude'=>$lng,
        'description'=>$description
    ]);


   return redirect('usermap');
  }

Любая помощь будет высоко ценится

Ответы [ 2 ]

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

добавьте это в ваше VerifyCsrfToken связующее ПО

protected $except = [
    '/cacheFinder/public/*'
];

или

xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

xmlhttp.setRequestHeader('X-CSRF-TOKEN',window.Cookies.get('_csrf'));

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

это из-за https://laravel.com/docs/5.7/csrf отключить защиту маршрута в CsrfMiddleware или опубликовать допустимое значение

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