不要在ajax laravel 5.2中运行window.location.href

时间:2016-05-27 05:38:39

标签: javascript php jquery ajax laravel

我有问题,当我使用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';
        }

2 个答案:

答案 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";
                         }