2017-02-22 2 views
0

JavaScript만을 사용하고 있습니다.laravel을 위해 JavaScript에서 CSRF를 설정하는 방법은 무엇입니까?

그리고 난 jQuery를 설정합니다 알고있는 CSRF 곁에있어,

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

하지만 내가 어떻게 "CSRF 토큰은"자바 스크립트를 사용할 수 있을까?

모든 Ajax 호출에 대해 공통 설정을 사용할 수 있습니까?

+0

어떻게 사용할 수 있습니까? –

+0

ajaxSetup은 모든 Ajax 요청에 대해 csrf 토큰을 사용하여 헤더를 설정합니다. –

+0

jQuery *가 * Javascript라는 것을 이해하고 있습니까? jQuery를 사용하지 않고 AJAX 요청의 헤더에 CSRF 토큰을 추가하는 방법을 묻는 중입니까? – maiorano84

답변

4

모든 ajax 호출에 공통된 csrf 토큰을 사용하려면 다음 코드를 마스터 레이아웃 블레이드 파일에 넣어야합니다. 레이아웃 헤더에서

:

<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> 

.

감사

당신은

위에서 보면 같은 레이아웃 헤더를 포함 할 수

+0

jQuery가 아니라 JavaScript 만 필요합니다! –

+0

자바 스크립트에서는 각 요청에 대해 토큰 헤더를 설정해야합니다. xhr.setRequestHeader ("X-CSRFToken", csrf_token)와 같습니다. –

1

그러나 당신이 포함 순수 자바 스크립트를 사용하려는 경우 사용할 수있는 토큰 :

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); 

희망 코드를 돕기 위해 ^^