. Auth.php, - csrf JSON. , javascript, ajax, csrf creds , - submit.
// Auth.php
public function get_csrf()
{
$csrf['csrf_name'] = $this->security->get_csrf_token_name();
$csrf['csrf_token'] = $this->security->get_csrf_hash();
echo json_encode($csrf);
}
//myFunction()
<script type="text/javascript">
function myFunction() {
$.ajax({
type: "GET",
dataType: 'json',
url: "https://<your_domain>.com/auth/get_csrf",
success: function (data) {
csrf_name = data.csrf_name;
csrf_token = data.csrf_token;
var form_field1 = document.getElementById('field1').value;
var form_field2 = document.getElementById('field2').value;
$('#csrftoken').attr('name', csrf_name);
$('#csrftoken').val(csrf_token);
$.ajax({
type: "POST",
url: "https://<your_domain>.com/<your_controller>/<your_function>",
data: {
[csrf_name] : csrf_token,
"field1" : form_field1,
"field2" : form_field2
},
success: function(data) {
if (data == "ok") {
console.log("Success!");
$("#infoMessage").html("<p>Success</p>").fadeIn(300);
} else {
console.log("Oops!");
$("#infoMessage").html("<p>Oops!</p>");
}
}
});
}
});
}
</script>
//html
<div id="infoMessage"></div>
<form method="post" accept-charset="utf-8">
<input type="hidden" id="csrftoken" name="" value="" />
<label for="field1">Field 1:</label> <br />
<input type="text" name="field1" id="field1" />
<label for="field2">Field 2:</label> <br />
<input type="text" name="field2" id="field2" />
<input type="button" name="submit" value="SUBMIT" onclick="myFunction()" />
</form>
source
share