我正在使用ajax将html表单发送到laravel控制器,但它显示了RouteCollection.php第251行中的MethodNotAllowedHttpException错误。
这是我的ajax代码。
<script type="text/javascript">
function Login(){
var data = $("#login-form").serialize();
$.ajaxSetup({
headers: {
'X-XSRF-Token': $('meta[name="_token"]').attr('content')
}
});
$.ajax({
type:"POST",
url:"userAuth",
data:data,
success: function(response)
{
console.log(response);
},
error:function(response)
{
console.log(response);
}
});
}
</script>
控制器代码
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class LoginController extends Controller
{
public function userAuth(Request $request)
{
$name = $request->username;
die($name);
}
}
?>
web.php代码
Route::post('/userAuth', 'LoginController@userAuth');
请让我知道我在做错什么,谢谢。
答案 0 :(得分:0)
带有基本URL和csrf令牌的请求URL
<script type="text/javascript">
function Login(){
var data = $("#login-form").serialize();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];
$.ajax({
type:"POST",
url: baseUrl+"/userAuth",
data:data,
success: function(response)
{
console.log(response);
},
error:function(response)
{
console.log(response);
}
});
}
</script>
答案 1 :(得分:-1)
在您的api.php文件中放置您的路线
Route::post('/userAuth', 'LoginController@userAuth');
您的web.php文件具有CSRF保护的中间件。您可以禁用它,但不推荐使用