Php jQuery POST请求总是返回404,但在Laravel 4中找不到
每次我尝试使用jQuery发出POST请求时,我都会收到404错误 这是Php jQuery POST请求总是返回404,但在Laravel 4中找不到,php,jquery,laravel,Php,Jquery,Laravel,每次我尝试使用jQuery发出POST请求时,我都会收到404错误 这是UserController.php: class UserController extends BaseController { public function signUp($username, $password, $email) { $user = new User(); $user->setUsername($username); $user->
UserController.php
:
class UserController extends BaseController {
public function signUp($username, $password, $email) {
$user = new User();
$user->setUsername($username);
$user->setPassword($password);
$user->setEmail($email);
return 'OK';
}
}
Route::get('/signup', function(){
return View::make('signup');
});
Route::post('/signup/{username}/{password}/{email}', 'UserController@signUp');
这是routes.php
:
class UserController extends BaseController {
public function signUp($username, $password, $email) {
$user = new User();
$user->setUsername($username);
$user->setPassword($password);
$user->setEmail($email);
return 'OK';
}
}
Route::get('/signup', function(){
return View::make('signup');
});
Route::post('/signup/{username}/{password}/{email}', 'UserController@signUp');
我总是收到以下错误:
POST http://192.168.0.102/webname/public/signup 404 (Not Found)
为什么呢?如果我尝试导航到http://192.168.0.102/webname/public/signup
页面已加载并显示注册表单。您正在使用“获取”类型的路由
让我解释一下
如果您想使用像/route/{something}/{distance}这样的路由
您必须手动生成与该路由匹配的URL
URL::route('route', $something, $different)
传递的变量think POST方法仅在HTTP头中可用
所以不能通过post方法传递变量来调用Route::post('/Route/{variable}')。
仅使用Route::get()
使用POST获取变量的步骤
Input::get('your_variable_name')
在控制器操作中
对不起,我的英语不好。。。有点累了,我也是法国人 您正在定义
Route::post('/signup/{username}/{password}/{email}', 'UserController@signUp');
但正在尝试访问:/webname/public/signup
这种模式不适用于POST,而只适用于GET。我遇到了一些与本次讨论相关的问题,在我看来,这些问题不值得发布自己的帖子:jQuery POST请求一直由我的Laravel GET控制器处理 我的路线:
Route::controller('/test','TestController');
我认为:
<script>
$(document).ready(function() {
jQuery.ajax({
type:'post',
url: '/test/x/',
success: function (response) {
alert(response);
}
});
});
</script>
在页面加载时,我希望看到一个警告,上面写着“Post”。。。但我一直在看“得到”。Laravel正在将post请求路由到get控制器
解决这个问题必须使用尾部斜杠。显然,Laravel将“/test/x/”解释为GET路由,但将“/test/x”解释为POST路由。因此,教训是,Laravel路由可能很微妙。希望这有助于澄清讨论。为什么您的URL中有
/webname/public
?这看起来很糟糕。我知道,但我刚刚安排了拉威尔……谢谢你的回答,我已经解决了我的问题:)别担心你的英语,很好:)