【发布时间】:2016-05-23 08:16:06
【问题描述】:
我是 Laravel 的新手,我正在尝试更新我的用户表中的记录,但我得到了这个 MethodNotAllowedHttpException,我已经尝试了所有方法,但没有任何效果。
用户控制器:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Users;
class UsersController extends Controller
{
public function index()
{
$users = Users::all();
return view('admin.users',compact('users'));
}
public function block(Request $request)
{
$user = Users::find($request->id);
$user->blocked = 1;
$user->save();
return redirect()->action('UsersController@index');
}
}
路由.php
Route::get('/admin/users', 'UsersController@index');
Route::post('/admin/users/block', 'UsersController@block');
直到$user->blocked = 1;一切都好。
更新 我正在通过这个 jQuery 方法访问控制器
$("#valdiate-user-block").click(function(){
var data = {
id: 2
}
$.ajax({
url: "block",
type:"POST",
data: data,
success:function(data){
alert(data);
},error:function(){
alert("error!!!!");
}
}); //end of ajax
});
我没有提到它,因为我本地化了错误,当我从根访问控制器时,我得到了错误,当我从 jQuery 访问它时,我得到了
POST http://localhost:1303/admin/users/block 500 (Internal Server Error)
请帮帮我,我累了!!
【问题讨论】:
-
遇到异常时您访问的 URL 是什么?以及如何访问该 URL?
-
能否请您出示一个发送请求的表格?
-
我是从 ajax 请求访问控制器,我没有提到它,因为我手动尝试了它来本地化错误,我会添加它
-
通常
MethodNotAllowedHttpException表示 CORS 错误,但您的浏览器也会返回 500 个错误(这真的很烦人)。您确定您的 ajax 请求正在触发block方法吗?就像您注释掉该函数中的所有代码并仅返回字符串“test”一样,您的 ajax 函数是否会在其数据中返回“test”一词,还是仍然有错误? -
@AndyNoelker 所有代码都在那里,ajax 功能很好。当我在 '$user->blocked = 1;' 之后添加 'dd($user->toArray())'我得到了一个结果,我需要的所有数据都很好,但是当它尝试保存它时,我得到 500 错误
标签: php laravel post laravel-5 put