Laravel 8 设置了一个API,前端页面发送ajax请求 之间如何配合

laravel 8
首先路由是:

Route::get("/SummaryLink/{id}", ['as' => 'SummaryLink', 'uses' => 'FeedbackController@SummaryLink']);

访问路由的结果如下图:

前端页面设置:

$.ajax({
                    url: '/SummaryLink/',
                    type: 'GET',
                    dataType: 'JSON',
                    data: {
                       // 'paramName': parameter
                       parameter
                    }, // 构造要传递的参数
                    success: function(data) {
                        console.log(data); // 输出服务器返回的响应结果
                    },
                    error: function(xhr, status, error) {
                        console.error("Error occurred:", error); // 错误处理
                    }
                });

但是这里的写法产生的效果是:
liuyanban/SummaryLink/?parameter=23...
就和刚才laravel写的接口不一样了
liuyanban/SummaryLink/234

这种情况如何解决呢?

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案
$.ajax({
        url: '/SummaryLink/' + parameter, // 改这里,手动拼接参数
        type: 'GET',
        dataType: 'JSON', 
        success: function(data) {
        console.log(data);  
    },
    error: function(xhr, status, error) {
        console.error("Error occurred:", error); 
    }
});
1个月前 评论
Richard852555 (楼主) 1个月前
讨论数量: 5
$.ajax({
        url: '/SummaryLink/' + parameter, // 改这里,手动拼接参数
        type: 'GET',
        dataType: 'JSON', 
        success: function(data) {
        console.log(data);  
    },
    error: function(xhr, status, error) {
        console.error("Error occurred:", error); 
    }
});
1个月前 评论
Richard852555 (楼主) 1个月前

去看axios的文档啊。。

1个月前 评论

把你的ajax里边这行代码去掉即可:dataType: 'JSON'。 无需那么麻烦拼接参数。

1个月前 评论

如果修改控制器和路由,那么可以按照下面的方法修改

Route::get("/SummaryLink", ['as' => 'SummaryLink', 'uses' => 'FeedbackController@SummaryLink']);
 public function SummaryLink(Request $request)
    {        
       //以下是路由参数
        // Route::get("/SummaryLink/{id}", ['as' => 'SummaryLink', 'uses' => 'FeedbackController@SummaryLink']); // SummaryLink的 模拟
        //http://liuyanban/SummaryLink/23
       // $p = $request->route('id');
       $p = $request->input('p'); // 假设你在 AJAX 请求中以 GET 或 POST 方式发送了
        if (!is_numeric($p)) {
            return response()->json([
                'error' => 'Invalid ID provided. ID must be a numeric value.'
            ], 422);
        }
        $totalAmount=$p;
       //$totalAmount = DB::table('pzti')
          // ->where('hsq', $hsq)
         //  ->sum('amount');

         //$totalAmount='返回数据 ' .$p;
       // 返回合计金额
       return response()->json(['total_amount' => $totalAmount]);
    }
1个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!