405方法不允许 - 带laravel路由的ajax请求

时间:2015-01-26 11:20:11

标签: javascript php ajax laravel-4

调用一个ajax函数应该这样做,我已经多次完成了。这次我一直得到405 method not allowed。我知道这个问题已经知道,但我已经尝试了建议的解决方案,但仍然无效。 这是我的控制器:

public function playGame($custom_url)
    {
        $project = Project::where('custom_url', $custom_url)->where('approved', 1)->first();
        if(Request::isMethod('post'))
        {
            $project->play_count = $project->play_count+1;
            $project->save();
            return json_encode(array('status'=>array('saved')));
        }
        return View::make('game.index');
    }

index.blade.php:

<title>Tennra</title>
        <link rel="shortcut icon" href="favicon.png"/>

        <link href="{{URL::asset('game/style.css')}}" rel="stylesheet" type='text/css'>
        <link href="{{URL::asset('game/menu.css')}}" rel="stylesheet" type='text/css'>
        <script type="text/javascript" src="{{URL::asset('game/jq.js')}}"></script>
        <script type="text/javascript" src="{{URL::asset('game/mainMenu.js')}}"></script>
        <script type="text/javascript" src="{{URL::asset('game/game.js')}}"></script>
        <script type="text/javascript" src="{{URL::asset('game/main.js')}}"></script>
    </head>

    <body>

    </body>

games.js:

function startedGame() {
    /*********************************
    **********************************
    ***   Add Code Here if Needed  ***
    **********************************
    *********************************/

    $.ajax({
        type: "post",
        data: null,
        url: "{{URL::route('projects.game')}}"
      }).done(function( msg )
      {
        msg=JSON.parse(msg);
        if(msg['errors'])
        {
        }
        else if(msg['status'])
        {
            console.log(true);
        }
      });
}

1 个答案:

答案 0 :(得分:0)

知道了。当我在刀片文件中创建ajax请求时,url始终采用以下格式:

url: "{{URL::route('urlname')}}"

但是由于请求是在.js文件中,语法不再正确所以我必须按如下方式更新它:

url: window.location

由于帖子请求与当前窗口具有相同的URL。