csrfトークンが与えられていないため、私のajax urlが500を返すので、csrfトークン(私はLaravelを使用しています)をajaxリクエストで渡す方法を学びたいと思っています。LarvelでAjaxリクエストを送信
get要求を使用するのは安全ですか?人々は外部サイトからの要求を偽装できますか?私はちょうどセキュリティホールなしでこれを行うための最善の方法を探しています。ここ
は私のAjaxコードである:私のルートで
<script>$.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } });</script>
:私のAjaxのコントローラで
Route::group(['middleware' => 'ajax', 'prefix' => 'ajax'], function() {
Route::any('/save-notes', '[email protected]');
});
:
<?php
namespace App\Http\Controllers\Admin\Admin;
use Illuminate\Http\Request;
use Cache;
use Auth;
use App\Database\Website\User\Roleplay;
class AjaxController
{
public function saveNotes()
{
if (!Auth::guest()) {
$roleplay = Roleplay::where('user_id', Auth::user()->id)->first();
$roleplay->housekeeping_notes = 'We saved it:) ' . rand(10,40);
$roleplay->save();
}
}
}
私のブレードファイルで
saveHousekeepingNotes();
function saveHousekeepingNotes() {
$.ajax({
url: "/ajax/save-notes",
type: "POST",
data: 'Here we have some data.',
beforeSend: function(xhr) {
$('.notes-status-holder').html('Saving...');
},
success: function(data) {
var jqObj = jQuery(data);
var d = new Date();
$('.notes-status-holder').html('autosaved ' + d.toLocaleTimeString());
setInterval(function() {
saveHousekeepingNotes();
}, 5 * 1000);
},
});
}
私のajaxミドルウェアは$ request-> ajax()がajax呼び出しを確認するかどうかをチェックします。だから私は基本的に尋ねるのは、どのようにしてcsrfトークンを安全に渡すことができるかということです。ララヴェルはそれを処理しますか?またはこれを行う良い方法はあります..です
[larvel TokenMismatchException of ajax request]の重複可能性があります。(http://stackoverflow.com/questions/21627170/laravel-tokenmismatchexception-in-ajax-request) – teynon