2017-02-22 15 views
0

Я использую только JavaScript.Как настроить CSRF в JavaScript для laravel?

И я знаю, JQuery установит это CSRF мимо,

$(function() { 
    $.ajaxSetup({ 
    headers: { 
     'X-CSRF-Token': $('meta[name="_token"]').attr('content') 
    } 
    }); 
}); 

Но как я мог бы использовать "CSRF-токен" в JavaScript?

Есть ли какие-либо возможности для общей настройки для всех вызовов Ajax?

+0

Что вы имеете в виду, как я мог использовать? –

+0

ajaxSetup устанавливает заголовки с токеном csrf для каждого запроса ajax –

+0

Вы понимаете, что jQuery * есть * Javascript, не так ли? Вы спрашиваете, как добавить токен CSRF в заголовки запроса AJAX без использования jQuery? – maiorano84

ответ

4

Чтобы использовать токен csrf, общий для всех вызовов ajax, вы поместили следующий код в свой файл макета основного макета.

В заголовке макета:

<meta name="csrf-token" content="{{ csrf_token() }}" /> 

в макете сноске:

<script type="text/javascript"> 
    jQuery(document).ready(function() {  
     jQuery.ajaxSetup({   
      headers: {    
       'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')   
      }  
     });  
    }); 
</script> 

Это будет работать для всех ваших запросов AJAX.

Благодаря

+0

Я хочу только для JavaScript, а не для jQuery! –

+0

В javascript вам нужно установить token oin headers для каждого запроса. Как xhr.setRequestHeader («X-CSRFToken», csrf_token); –

1

Вы можете включить макет заголовка выглядеть же выше

Но если вы хотите использовать чистый JavaScript, чтобы включить маркер можно использовать:

var xhttp = new XMLHttpRequest(); 
xhttp.open("POST", url , true); 
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
xhttp.setRequestHeader("X-CSRF-TOKEN", document.head.querySelector("[name=csrf-token]").content); 
xhttp.send(params); 

Надежда, чтобы помочь код ^^

Смежные вопросы