我创建了一个新的Laravel 5.4项目,创建了模型'Recipe',迁移表'recipes'并将路由添加到'Api.php' . 但是当在Postman中测试我的API时,我获得了一个Html文件而不是获得Json响应 .
以下是根据以下文件的代码:
API.php路由文件
<?php
use Illuminate\Http\Request;
Route::post('/recipe', 'RecipeController@postRecipe')-
>name('get_recipe');
Route::get('/recipe', 'RecipeController@getRecipe')-
>name('post_recipe');
RecipeController
namespace App\Http\Controllers;
use App\Recipe;
use Illuminate\Http\Request;
class RecipeController extends Controller {
public function postRecipe(Request $request)
{
$recipe = new Recipe();
$recipe->content = $request->input('content');
$recipe->save();
return response()->json(['recipe' => $recipe], 201);
}
public function getRecipe()
{
return response()->json(['message' => 'Got a Response'],200);
}
食谱模型
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Recipe extends Model
{
protected $fillable = ['content'];
}
迁移迁移并创建表'食谱' .
然后在邮递员中我尝试向我的网址发送'get'请求:'recipeapi.dev/api/recipe'但获取html代码 .
当我尝试向我的网址发送'发布'请求时,会发生同样的情况:'recipeapi.dev/api/recipe' . OFC对于帖子请求我包括 Headers :'Content-Type''application / json' . 仍然得到相同的HTML代码....
使用Homestead / vagrant进行laravel,如果我使用浏览器进入默认路线:'/'它将我带到欢迎Laravel页面 .
不知道我持续得到这些HTML代码的问题,而不是我的控制器的Json数据 .
这是邮递员的数据与数据....
有人知道发生了什么事吗?为什么我的get和post请求中没有从我的api获取Json数据?
多谢你们!
4 回答
返回的http状态是404 .
响应的正文似乎是一个HTML页面(404错误页面?)
服务器无法识别URL .
我会检查以确保您使用正确的URL .
看起来它甚至找不到路线 .
请用此替换
api.php
文件,然后重试GET
请求:在测试API时,您应该关闭Laravel Debugbar . 或者您可以为所有API路线关闭它 .
这是来自here的Laravel 5的解决方案:
我感谢你的帮助!你们非常友好地从繁忙的日程中抽出时间 .
我终于解决了这个问题 . 我觉得现在很傻 . 因为我正在使用Homestead,所以我必须在宅基地目录中做一个流浪汉命令'vagrant provision',一切正常 .
我似乎经常得到这个问题,特别是当我创建授权的php artisan make:auth'时,我必须在其中制作一个vagrant provision命令以便登录,注册部分等授权显示在网页上 .
不知道这个问题的原因是什么,但问题解决了 .
再次感谢大家!欣赏它!