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