我有问题,当我使用ajax时,代码拉长运行并且我可以从ajax获得结果但是这不运行window.location.href = "http://stackoverflow.com";
,
$('.promotion').click(function(){
var id= $(this).attr('id');
var url= $(this).attr('href');
$.ajax({
url:"link-"+id+"-"+url+"",
type:"GET",
cache:false,
data:{'id':id,'url':url,_token:$(this).data('token')},
dataType:"json",
success: function(data){
if(data=='oke'){
window.location.href = "http://stackoverflow.com";
}
}
});
return false;
});
countController
public function count($id){
$db= DB::table('promotions')->where('id','=', $id)->get();
DB::table('promotions')->where('id','=', $id)->update(['count_pm' => $db[0]->count_pm +1]);
echo 'oke';
}
答案 0 :(得分:1)
由于此参数,您的脚本尝试将服务器响应转换为JSON对象:dataType:"json",
。只需删除它就可以了!
或者:更改您从控制器的返回 - 返回数组,该数组将在前端转换为JSON。
答案 1 :(得分:1)
删除数据类型:json并尝试此
public function count($id){
$db= DB::table('promotions')->where('id','=', $id)->get();
DB::table('promotions')->where('id','=', $id)->update(['count_pm' => $db[0]->count_pm +1]);
return response()->json(['result' => 'oke']);
}
jquery代码将是
if(data.result == 'oke'){
window.location.href = "http://stackoverflow.com";
}