Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php header()重定向在使用Evernote cloud SDK的my laravel应用程序中不起作用_Php_Laravel_Laravel 5 - Fatal编程技术网

Php header()重定向在使用Evernote cloud SDK的my laravel应用程序中不起作用

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

我正在使用Evernote Cloud SDK for PHP,可以找到它

在我的代码中,我尝试使用类似于其示例OAuth(found)的东西,我已将代码放入控制器中:

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');