我试图发出一个简单的AJAX请求来填充Laravel中的菜单,但是,要让它正常工作,我遇到了很多麻烦.

我不确定问题是什么,经过几个小时的搜索,我找不到任何有帮助的东西.

以下是我的AJAX请求:

$.ajax({
            type: 'POST',
            url: '/ajax/populateApiAuth',
            data: json,
            dataType: 'JSON',
            success: function (json) {
                alert('test');
                return true;
            },
            error: alert('fail')
});

我的AJAX回调路径:

Route::get('/ajax/populateApiAuth', 'ApiController@populateApiAuth');

我的控制器在ApiController中处理AJAX回调:

public function populateApiAuth()
    {
        return Response::json(array('msg' => 'test');
    }

发送AJAX请求时,它返回错误参数中的失败消息,并在控制台中告诉我:

POST http://localhost:8000/ajax/populateApiAuth 405 (Method Not Allowed) 

研究此错误消息时,它是由于向其他域/服务器发出POST请求而导致的?这怎么可能?

我try 使用绝对URL作为AJAX请求:

url: '{{ URL::to("ajax/populateApiAuth") }}

它给出了完整的URL:http://localhost:8000/ajax/populateApiAuth,但这也不能解决问题.

推荐答案

这不是你的问题吗?

Route::get('/ajax/populateApiAuth', 'ApiController@populateApiAuth');

您为GET请求设置了路由,但试图通过POST请求访问它.

Laravel相关问答推荐

Laravel:通过数据透视表数据限制多对多Eager 加载

Laravel Eloquent查询与集合优化

如何让 Laravel 的 Collection 表现得像一个流?

使用两个日期之间的范围获取两列之间的记录,同时搜索过滤条件

Laravel & Docker:无法打开流或文件/var/www/html/storage/logs/laravel.log:无法打开流:权限被拒绝

Laravel Blade 模板 @foreach 订单

从 laravel/blade 中的数组创建逗号分隔列表?

Laravel timestamps() 不会创建 CURRENT_TIMESTAMP

Laravel 中的合同和 PHP 中的接口有什么区别?

你如何在自定义 Laravel Nova 工具中使用确认对话?

从 Laravel Cashier 获取下一个账单日期

如何在 Laravel 5.5 中为选定的请求类设置自定义响应

用于集合的 Laravel 5.5 API 资源

Laravel/Lumen 中两列之间的 SQL

Laravel 5 与 Postgresql

日期验证 - 如何本地化/翻译字符串今天和明天

在 Laravel 中按用户名查找用户

Laravel 5 - 判断日期是否是今天

Laravel 检测手机/平板电脑并加载正确的视图

Laravel Nova 显示用户友好的资源名称