调用一个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);
}
});
}
答案 0 :(得分:0)
知道了。当我在刀片文件中创建ajax请求时,url始终采用以下格式:
url: "{{URL::route('urlname')}}"
但是由于请求是在.js文件中,语法不再正确所以我必须按如下方式更新它:
url: window.location
由于帖子请求与当前窗口具有相同的URL。