【发布时间】:2017-09-03 00:12:34
【问题描述】:
我构建了一个新的 laravel 5.4 项目。
我尝试在我的 api 路由中执行以下步骤,但不知何故它们不起作用。
在我的 app.js 文件中,我有这个 ajax 调用:
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
}
});
$.ajax({
url: 'api/postStream',
type: 'post',
data: { imgData: imgData },
success:function(data) {
console.log('success');
}
});
我的 Api 路由如下所示:
Route::group(['middleware' => 'auth:api'], function()
{
Route::post('postStream', ['as' => 'image', 'uses' => 'ApiController@postStream']);
});
还有我的控制器:
public function postStream(Request $request)
{
$imgData = $request->imgData;
...
}
但我在我的 chrome 开发控制台中收到此错误:
POST http://localhost/app/public/api/postStream 401 (Unauthorized)
在网络工具中:
{error: "Unauthenticated."}
error
:
"Unauthenticated."
我想我有点没有经过身份验证,但我不知道如何以这种方式实现。
【问题讨论】:
-
你确定你到达了正确的端点吗?我的猜测是http请求应该去localhost/api/postStream。
-
如果您使用
['middleware' => 'auth:api'],则需要传递访问令牌。遵循创建 API、保护 API 和请求 API 密钥的步骤。首先,您需要获取访问密钥并通过 ajax 调用传递它。我正在使用Passport为我的 API 提供身份验证。 laravel.com/docs/5.4/passport -
@webDev 嗯好的,你知道一个教程可以进一步解释这个吗?这个:laravel.com/docs/5.4/passport ?
标签: php laravel api laravel-5.3 laravel-5.4