【发布时间】:2015-03-24 19:21:04
【问题描述】:
应该以这种方式调用 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);
}
});
}
【问题讨论】:
-
如果您使用 Postman (chrome.google.com/webstore/detail/postman-rest-client/…) 测试 POST,也会发生同样的情况
-
@bitoiu 与邮递员完美配合,但在项目中尝试时仍然出错
-
在 chrome 开发工具网络选项卡中,您看到请求发出了吗?它与 Postman 请求有何不同?假设 405 是一个服务错误(如果是客户端,就搞砸了),比较这两个请求,您应该能够查明客户端的框架做错了什么。
-
也发布您的 routes.php。
标签: javascript php ajax laravel-4