[英]Can't perform POST requests in Laravel test for API routes
我正在為我的 Laravel 應用程序編寫功能測試,在那里我對我的服務執行一些請求。
在嘗試測試我的 API 時,所有 GET 請求都可以正常工作,但所有 POST 請求都返回此響應:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="refresh" content="0;url='http://localhost'" />
<title>Redirecting to http://localhost</title>
</head>
<body>
我的測試代碼如下所示:
$this->post('api/my/route')->dump();
我的 api 路由如下所示:
Route::prefix('my')->group(function() {
Route::post('/route', function() {
return 'ok';
});
是否有任何中間件等。在創建這樣的請求之前,我可能需要更改/停用?
使用web.php
路由時,這些請求工作正常
正如@Deepesh Thapa提到的,您應該返回 JSON。
在你的測試中,你應該像這樣添加postJson
:
$this->postJson('api/my/route')
瀏覽文檔。
祝你好運!
您將需要返回一個 json 響應。 json 方法會自動將 Content-Type 標頭設置為 application/json,並使用 json_encode PHP 函數將給定的數組轉換為 JSON:
所以你確實應該返回如下數據。
Route::prefix('my')->group(function() {
Route::post('/route', function() {
return response()->json(['message'=>'ok']);
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.