Php header()重定向在使用Evernote cloud SDK的my laravel应用程序中不起作用
我正在使用Evernote Cloud SDK for PHP,可以找到它 在我的代码中,我尝试使用类似于其示例OAuth(found)的东西,我已将代码放入控制器中:Php header()重定向在使用Evernote cloud SDK的my laravel应用程序中不起作用,php,laravel,laravel-5,Php,Laravel,Laravel 5,我正在使用Evernote Cloud SDK for PHP,可以找到它 在我的代码中,我尝试使用类似于其示例OAuth(found)的东西,我已将代码放入控制器中: class OauthController extends Controller { public function reqToken() { $oauthHandler = new OauthHandler(env('EVERNOTE_SANDBOX', 'true')); $c
class OauthController extends Controller
{
public function reqToken()
{
$oauthHandler = new OauthHandler(env('EVERNOTE_SANDBOX', 'true'));
$callback = 'http://localhost/auth'; //temp
$oauthData = $oauthHandler->authorize(env('EVERNOTE_KEY', ''), env('EVERNOTE_SECRET', ''), $callback);
}
}
根据Evernote Cloud SDK,在authorize()
下调用以下代码行:
我已经调试了我的方式,以查看这行代码是否被调用,但我的页面没有被重新路由到$authorizationUrl
,即:
“位置:”
我最后还是呆在空白的页上。
如果有帮助,以下是我的路线:
Route::get('/auth', 'OauthController@reqToken');
我试着在文档中查找header函数的信息,但是没有看到任何东西表明为什么它会给我带来麻烦。有什么想法吗?试试laravel重定向功能 重定向() 调用
header()
函数后,您可以传入完整的url,您应该使用终止请求代码>或退出代码>并且不在页面上输出任何内容。在您的->authorize()
调用之后,请尝试将其添加到中。另一件事可能是已经发送了标题,所以这不是“实际上”发送到浏览器
通常情况下,标头没有完全发送,而Laravel在调用您的方法后继续执行某些操作,这可能会损坏此标头或覆盖它并导致问题。所以调用exit代码>或模具代码>设置标题后,您将跳过默认情况下Laravel提供的所有额外开销。重定向代码位于Evernote SDK的authorize
方法下。这不是我自己的代码。我想知道可能出了什么问题,因为我假设其他人使用evernote SDK时没有问题?调用header()
函数后,应该使用die终止请求代码>或退出代码>并且不在页面上输出任何内容。在您的->authorize()
调用之后,请尝试将其添加到中。另一件事可能是已经发送了头文件,所以这不是“实际”发送到browserWow,运行exit()
效果很好!你知道这是为什么吗?据我所知,他们在示例应用程序中没有这样做?(我链接了上面的例子)。另外,使用这个exit()
方法是否“可以”,或者这是一个有点拙劣的工作?您可以使用exit,通常情况下,报头没有完全发送,而Laravel在调用您的方法后继续做一些事情,这可能会损坏此报头或覆盖它并导致问题。因此,在设置了标题之后立即调用exit或die,就可以跳过Laravel默认提供的所有额外开销。太棒了!谢谢。如果你写了一篇回帖,我会很高兴地把它标记为正确答案:)很高兴我能帮上忙!祝您与Evernote的集成好运
Route::get('/auth', 'OauthController@reqToken');