对于Laravel视图中AJAX请求、jquery-ujs异步使用DELETE请求时配置X-CSRF-TOKEN感兴趣的读者,本文将会是一篇不错的选择,并为您提供关于ajaxPOST请求的Larave
对于Laravel 视图中AJAX请求、jquery-ujs异步使用DELETE请求时配置X-CSRF-TOKEN感兴趣的读者,本文将会是一篇不错的选择,并为您提供关于ajax POST请求的Laravel csrf令牌不匹配、AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数、ajax请求中 两种csrftoken的发送方法、Ajax请求中的jQuery Ajax请求的有用信息。
本文目录一览:- Laravel 视图中AJAX请求、jquery-ujs异步使用DELETE请求时配置X-CSRF-TOKEN
- ajax POST请求的Laravel csrf令牌不匹配
- AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数
- ajax请求中 两种csrftoken的发送方法
- Ajax请求中的jQuery Ajax请求
Laravel 视图中AJAX请求、jquery-ujs异步使用DELETE请求时配置X-CSRF-TOKEN
常规在form表单中配置token方式
{!! csrf_field() !!} Or <input type="hidden" name="_token" value="<?PHP echo csrf_token(); ?>"> Or <?PHP echo csrf_field(); ?>
AJAX请求
首先配置Meta或者存储在其他地方
<Meta name="csrf-token" content="{{ csrf_token() }}">
ajax调用前设置token到header中
$.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('Meta[name="csrf-token"]').attr('content') } });
使用jquery-ujs时
引入ujs
<script src="https://cdn.bootcss.com/jquery-ujs/1.2.2/rails.js"></script>
针对a标签的delete请求
<a href="/admin/manager/api/1" data-method="DELETE" >删除[Delete]</a>
并且在当前页面增加Meta
<Meta name="csrf-token" content="{{ csrf_token() }}"/> //token值 <Meta name="csrf-param" content="_token"/> //token请求时key
以上两项Meta同时配置无误后,点击a标签时会自动附加token参数。
ajax POST请求的Laravel csrf令牌不匹配
我正在尝试通过 ajax 从数据库中删除数据。
HTML:
@foreach($a as $lis)
//some code
<a href="#"id="{{$lis['id']}}">Delete</a>
//click action perform on this link
@endforeach
我的ajax代码:
$('body').on('click','.delteadd',function (e) {
e.preventDefault();
//alert('am i here');
if (confirm('Are you sure you want to Delete Ad ?')) {
var id = $(this).attr('id');
$.ajax({
method: "POST",url: "{{url()}}/delteadd",}).done(function( msg ) {
if(msg.error == 0){
//$('.sucess-status-update').html(msg.message);
alert(msg.message);
}else{
alert(msg.message);
//$('.error-favourite-message').html(msg.message);
}
});
} else {
return false;
}
});
这是我从数据库中获取数据的查询…
$a = Test::with('hitsCount')->where('userid',$id)->get()->toArray();
但是当我单击删除链接数据未删除并显示 csrf_token 不匹配时…
AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数
定义和用法
ajaxSetup() 方法为将来的 AJAX 请求设置默认值。
语法
$.ajaxSetup({name:value,name:value,... })
该参数为带有一个或多个名称/值对的 AJAX 请求规定设置。下面的表格中列出了可能的名称/值:名称 值/描述async 布尔值,表示请求是否异步处理。默认是 true。beforeSend(xhr) 发送请求前运行的函数。cache 布尔值,表示浏览器是否缓存被请求页面。默认是 true。complete(xhr,status) 请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)。contentType 发送数据到服务器时所使用的内容类型。默认是:"application/x-www-form-urlencoded"。context 为所有 AJAX 相关的回调函数规定 "this" 值。data 规定要发送到服务器的数据。dataFilter(data,type) 用于处理 XMLHttpRequest 原始响应数据的函数。dataType 预期的服务器响应的数据类型。error(xhr,status,error) 如果请求失败要运行的函数。global 布尔值,规定是否为请求触发全局 AJAX 事件处理程序。默认是 true。ifModified 布尔值,规定是否仅在最后一次请求以来响应发生改变时才请求成功。默认是 false。jsonp 在一个 jsonp 中重写回调函数的字符串。jsonpCallback 在一个 jsonp 中规定回调函数的名称。password 规定在 HTTP 访问认证请求中使用的密码。processData 布尔值,规定通过请求发送的数据是否转换为查询字符串。默认是 true。scriptCharset 规定请求的字符集。success(result,xhr) 当请求成功时运行的函数。timeout 设置本地的请求超时时间(以毫秒计)。Traditional 布尔值,规定是否使用参数序列化的传统样式。type 规定请求的类型(GET 或 POST)。url 规定发送请求的 URL。默认是当前页面。username 规定在 HTTP 访问认证请求中使用的用户名。xhr 用于创建 XMLHttpRequest 对象的函数。
ajax请求中 两种csrftoken的发送方法
通过ajax的方式发送两个数据进行加法运算
html页面
<body>
<h3>index页面 </h3>
<input type="text" name="cal_1">+
<input type="text" name="cal_2">=
<input type="text" name="cal_3">
<button id="b2">计算</button>
<script src="/static/js/jquery.js"></script>
{#<script src="/static/js/ajax_setup.js"></script>#}
<script>
$("#b2").click(function () {
$.ajax({
url: "/cal2/",//提交的地址
type: "post",
//csrftoke 可以通过headers获取, 也可以通过data获取,选择一种发送方式
{#headers:{"X-csrftoken":$("[name=''csrfmiddlewaretoken'']").val()},#}
{#headers:{''X-csrftoken'':csrftoken,},#}
//(获取的是cookie里的token的值,跟上一行效果一样一样,但是要引src="/static/js/ajax_setup.js")
data: {
i1: $("[name=''cal_1'']").val(),//获取标签里的值
i2: $("[name=''cal_2'']").val(),
"csrfmiddlewaretoken": $("[name=''carfmiddlewaretoken'']").val(),
{#"csrfmiddlewaretoken":csrftoken,#}
//(获取的是cookie里的token的值,跟上一行效果一样一样,但是要引src="/static/js/ajax_setup.js")
},
success: function (response) {
$("[name=''cal_3'']").val(response) // 给cal_3赋值
},
error: function (response) {
},
})
});
</script>
</body>
csrf的发送可以在headers里面发送,也可以在data里面发送. 不管在哪发送,都有两种发送形式.
第一种方式就是直接在headers 或者 data 获取值,然后发送
$("#b2").click(function () {
$.ajax({
url: "/cal2/",//提交的地址
type: "post",
//csrftoke 可以通过headers获取, 也可以通过data获取,选择一种发送方式
headers:{"X-csrftoken":$("[name=''csrfmiddlewaretoken'']").val()},
data: {
i1: $("[name=''cal_1'']").val(),//获取标签里的值
i2: $("[name=''cal_2'']").val(),
"csrfmiddlewaretoken": $("[name=''carfmiddlewaretoken'']").val(),
第二种方式就是引入ajax_setup文件发送. 也是可以通过headers 或者 data
<script src="/static/js/ajax_setup.js"></script>
<script>
$("#b2").click(function () {
$.ajax({
url: "/cal2/",//提交的地址
type: "post",
//csrftoke 可以通过headers获取, 也可以通过data获取,选择一种发送方式
{#headers:{"X-csrftoken":$("[name=''csrfmiddlewaretoken'']").val()},#}
headers:{''X-csrftoken'':csrftoken,},
//(获取的是cookie里的token的值,跟上一行效果一样一样,但是要引src="/static/js/ajax_setup.js")
<script src="/static/js/ajax_setup.js"></script>
data: {
i1: $("[name=''cal_1'']").val(),//获取标签里的值
i2: $("[name=''cal_2'']").val(),
{#"csrfmiddlewaretoken": $("[name=''carfmiddlewaretoken'']").val(),#}
"csrfmiddlewaretoken":csrftoken,
//(获取的是cookie里的token的值,跟上一行效果一样一样,但是要引src="/static/js/ajax_setup.js")
},
在veiws都一样
#发ajax计算
def cal2(request):
i1=request.POST.get("i1","") # 如果有值就获取,如果没有值就默认获取空字符串 这里的i1 对应的是前端data 里面 i1:$("[name=''cal_1'']").val()的i1
i2=request.POST.get("i2","")
print("i1:",i1)
print("i2:",i2)
if i1 and i2:
i3=int(i1)+int(i2)
else:
i3=""
return HttpResponse(i3)
Ajax请求中的jQuery Ajax请求
因为我需要从第一个ajax请求的一些数据,以进行下一个ajax请求。
首先,我使用Google Maps API获取LAT& LNG,之后我使用LAT& LNG请求Instagram API(基于搜索的位置)。
再次,这是可能的,如果是如此?
$('input#search').click(function(e){ e.preventDefault(); var source=$('select[name=state] option:selected').text()+' '+$('select[name=city] option:selected').text()+' '+$('select[name=area] option:selected').text(); var source=source.replace(/ /g,'+'); if(working==false){ working=true; $(this).replaceWith('<span id="big_loading"></span>'); $.ajax({ type:'POST',url:'/killtime_local/ajax/location/maps.json',dataType:'json',cache: false,data:'via=ajax&address='+source,success:function(results){ // this is where i get the latlng } }); } else { alert('please,be patient!'); } });
$.ajax({ type: "post",url: "ajax/example.PHP",data: 'page=' + btn_page,success: function (data) { var a = data; // This line shows error. $.ajax({ type: "post",url: "example.PHP",data: 'page=' + a,success: function (data) { } }); } });
今天关于Laravel 视图中AJAX请求、jquery-ujs异步使用DELETE请求时配置X-CSRF-TOKEN的介绍到此结束,谢谢您的阅读,有关ajax POST请求的Laravel csrf令牌不匹配、AJAX请求 $.ajaxSetup方法的使用:设置AJAX请求的默认参数选项,当程序中需要发起多个AJAX请求时,则不用再为每一个请求配置请求的参数、ajax请求中 两种csrftoken的发送方法、Ajax请求中的jQuery Ajax请求等更多相关知识的信息可以在本站进行查询。
本文标签: