我已经创建了一个新的Laravel 5.4项目,创建了模型“食谱”,迁移表“食谱”并将路由添加到“Api.php”。但是当在Postman中测试我的API时,我得到的不是JSON响应,而是HTML文件。
以下是根据以下文件的代码:
API.php Routes文件
<?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'];
}
迁移已迁移,表“配方”已创建.
然后在postman中我尝试对我的URL进行' get '请求:'recipeapi.dev/api/recipe'但获取html代码。
当我尝试向我的URL发送“post”请求时,也会发生同样的情况:'recipeapi.dev/api/recipe'。发布请求的OFC包含标题:' Content-Type ' ' application/json '。仍然得到相同的html代码。。。
使用宅基地/vagrant for laravel,如果我使用浏览器转到默认路由:'/'它把我带到了欢迎的Laravel页面。
不知道是什么问题,我一直得到这些HTML代码,而不是JSON数据,根据我的控制器。
以下是 Postman 的照片与数据。。。
Get request with Postman
Post request with Postman
有人知道发生什么事了吗?为什么我没有从get和post请求的API中获取Json数据?
谢谢各位!
5条答案
按热度按时间0s7z1bwu1#
你只需要在请求中添加这两个头:
vbopmzt12#
它看起来甚至找不到路线。
请将您的
api.php
文件替换为以下内容,然后重试GET
请求:m2xkgtsf3#
在测试API时,您应该关闭Laravel Debugbar。或者,您可以为所有API路由关闭它。
以下是来自here的Laravel 5的解决方案:
njthzxwz4#
返回的HTTP状态为404。
404错误页面404错误页面404错误页面)
服务器无法识别URL。
请检查您是否使用了正确的URL。
bwleehnv5#
谢谢你的帮助!你们在忙碌之中抽出时间真是太好了。
我终于解决了这个问题。我现在觉得很傻。我只需要在宅基地目录中执行一个vagrant命令' vagrant provision ',因为我正在使用Homestead,并且所有都在工作。
我似乎不时会遇到这个问题,特别是当我创建授权' php artisan make:auth '时,此后我将不得不制作一个流浪的规定命令,以便登录,注册部件等。在网页上出现的授权。
不知道这个问题的原因是什么,但问题解决了。
再次感谢各位!谢谢!