404 API 在生产模式下使用分页请求,但在开发模式下有效
404 API request with pagination in prod mode but works in dev
我使用 Laravel API 和 Angular 服务来制作我的应用程序。
我正在使用 Angular 对我的数组进行分页,并在我的服务中使用此功能发出 HTTP 请求:
getPagination(page): Observable<any> {
return this.httpClient.get<any>(environment.apiBaseUrl + 'test/?page=' + page);
}
当我触发它时,我得到了带有分页的数据,但是当我想在产品中得到另一个页面时,我得到了 404 错误,因为它使用了我什至没有给出的 URL。
我应该有这个 url:
http://prodUrl/back/api/test?page=2
但我明白了:
http://prodUrl/api/test?page=2
这里是LaravelAPI
中的函数
public function getAll()
{
$stuff = MyStuff::orderByDesc('updated_at')->paginate(50);
return response()->json($stuff, 200);
}
路线:
Route::get('test', [Controller::class, 'getAll']);
当我在第一次调用获取第一页时对 environment.apiBaseUrl
创建 console.log()
时,我有权利 url 并且内容相同:
current_page: 1
first_page_url: "http://prodUrl/back/api/test?page=1"
from: 1
last_page: 3
last_page_url: "http://prodUrl/back/api/test?page=3"
links: (5) [{…}, {…}, {…}, {…}, {…}]
next_page_url: "http://prodUrl/back/api/test?page=2"
path: "http://prodUrl/back/api/test"
per_page: 50
prev_page_url: null
to: 50
total: 146
那么为什么 HTTP 请求不使用它呢?
我找到了一种方法来获取我需要的 url,方法是传递当前页面的 url,然后使用 substring()
删除页码以添加如下参数:
let urlSplit = url.substring(0, url.indexOf('=') + 1);
return this.httpClient.get<any>(urlSplit + page);
我使用 Laravel API 和 Angular 服务来制作我的应用程序。 我正在使用 Angular 对我的数组进行分页,并在我的服务中使用此功能发出 HTTP 请求:
getPagination(page): Observable<any> {
return this.httpClient.get<any>(environment.apiBaseUrl + 'test/?page=' + page);
}
当我触发它时,我得到了带有分页的数据,但是当我想在产品中得到另一个页面时,我得到了 404 错误,因为它使用了我什至没有给出的 URL。
我应该有这个 url:
http://prodUrl/back/api/test?page=2
但我明白了:
http://prodUrl/api/test?page=2
这里是LaravelAPI
中的函数public function getAll()
{
$stuff = MyStuff::orderByDesc('updated_at')->paginate(50);
return response()->json($stuff, 200);
}
路线:
Route::get('test', [Controller::class, 'getAll']);
当我在第一次调用获取第一页时对 environment.apiBaseUrl
创建 console.log()
时,我有权利 url 并且内容相同:
current_page: 1
first_page_url: "http://prodUrl/back/api/test?page=1"
from: 1
last_page: 3
last_page_url: "http://prodUrl/back/api/test?page=3"
links: (5) [{…}, {…}, {…}, {…}, {…}]
next_page_url: "http://prodUrl/back/api/test?page=2"
path: "http://prodUrl/back/api/test"
per_page: 50
prev_page_url: null
to: 50
total: 146
那么为什么 HTTP 请求不使用它呢?
我找到了一种方法来获取我需要的 url,方法是传递当前页面的 url,然后使用 substring()
删除页码以添加如下参数:
let urlSplit = url.substring(0, url.indexOf('=') + 1);
return this.httpClient.get<any>(urlSplit + page);