Nakavt js tıklama ciltleme yoluyla bir düğmeye tıklayarak ajax posta yöntemi ile bir kullanıcı formu göndermeye çalışıyorum. Aldığım hata 403 - Yasaktır.CSRF ve ajax formu knockout js tıklama kodlama 3 kullanarak gönderin - Yasak hata
Bunun CSRF ile bir ilgisi olduğuna, ancak bunu çözemediğine eminim.
View.php:
düğmeyi tıklamak üzerinde<?php echo form_open('client/search_client_database', ['role' => 'form']); ?>
<fieldset>
<div class="form-group">
<label class="sr-only" for="search_client_input">Search for existing clients</label>
<div class="input-group">
<input class="form-control input-sm" type="text" id="search_client_input" name="search_client_input" placeholder="Search for existing clients...">
<span class="input-group-btn">
<button class="btn btn-primary btn-sm" type="button" data-bind="click: search_client">Search</button>
</span>
</div>
</div>
</fieldset>
<?php echo form_close(); ?>
, Js tıklama kontrolöre bir ajax çağrısı başlatmak için trigged edilir bağlayıcı nakavt. Nakavt js kodu, görünümle birlikte yüklenen ayrı bir js dosyasındadır.
Client.js Dosya:
var base_url = window.location.origin;
var url = base_url+"/client/";
this.search_client = function()
{
crsf = $("input[name=csrf_test_name]").val();
dataString = $("#search_client_input").val();
alert(crsf);
$.ajax({
url: url+"search_client_database",
type: "post",
cache: false,
data: {crsf: crsf, data: dataString},
success: function(customer_details) {
alert(customer_details);
},
error: function(xhr, ajaxOptions, thrownError)
{
alert(xhr.status);
alert(thrownError);
}
});
}
Denetleyici:
public function search_client_database()
{
$data = $this->input->post('data');
echo $data;
}
ben almaya devam xhr hatası 403 yani Yasak. URL'de yanlış bir şey yok.
: Eğer Ajax isteği
data
bu kullanmak gerekir bu yüzden,csrf_test_name
denir kodunuzda dayalı durumda$ config ['csrf_token_name'] 'olarak yapılandırıldı. Yani veri ile çalışın: {"csrf_test_name": crsf, data: dataString}, ' – nemesv