我正在尝试使用phpunit测试我的Laravel API,并且我使用Blah[]
方法执行调用并查看它们是否正常工作。
我也是JWT进行身份验证,因此必须通过我的令牌。简单的GET请求很简单:
$this->call();
但是当我需要为此创建一个新用户或任何资源时,我正在尝试:
$response = $this->call('GET', 'users?token=' . $this->token);
但它给了我一个像这样的重定向:
$response = $this->call('POST', 'users/?token=' . $this->token, $user);
现在当我做一些挖掘时,我遇到了这个:
Redirect 302 on Laravel POST request
调用方法的API如下所示:
<!DOCTYPE html>\n
<html>\n
<head>\n
<meta charset="UTF-8" />\n
<meta http-equiv="refresh" content="1;url=http://localhost" />\n
\n
<title>Redirecting to http://localhost</title>\n
</head>\n
<body>\n
Redirecting to <a href="http://localhost">http://localhost</a>.\n
</body>\n
</html>
所以我尝试了这个:
$response = $this->call($method, $uri, $parameters, $cookies, $files, $server, $content);
但我仍在重定向。我错过了什么?
答案 0 :(得分:2)
为什么不尝试这样的事情?
$token = ‘your token’;
$method = ‘POST’;
$params = [];
$response = $this->call($method,'http://api.api.app/api/',
$params,[],[],['HTTP_Authorization' => 'Bearer ' . $token],[]);
$this->response = $response;
$this->seeStatusCode(200);
更新
你在Laravel中启用了CORS吗?也许这就是原因。
使用标题:'HTTP_X_REQUESTED_WITH' => 'XMLHttpRequest'
或尝试laravel-cors包。