我正在Laravel应用程序中为Cors使用\Fruitcake\Cors\HandleCors
中间件。
我的cors。php
文件如下所示:
'paths' => ['api/*', 'oauth/*', '*'],
'allowed_methods' => ['POST', 'GET', 'DELETE', 'PUT', '*'],
'allowed_origins' => ['http://localhost:3000', 'https://localhost:3000'],
'allowed_origins_patterns' => [],
'allowed_headers' => ['*'],
'exposed_headers' => [],
'max_age' => 0,
'supports_credentials' => true,
我设置cookie作为回应,如下所示:
$access_cookie = Cookie::make('access_token', $access_token, $cookieLife, null, null, true);
$refresh_cookie = Cookie::make('refresh_token', $refresh_token, $MINUTES_IN_ONE_YEAR, null, null, true);
return response()
->json(['tokens' => ['access_token' => $access_token, 'refresh_token' => $refresh_token], 'user' => $user])->withCookie($access_cookie)->withCookie($refresh_cookie);
最后,我从运行在https://localhost:3000
它给我一个错误,说不允许CORS(经典CORS错误)。
但是当我从响应中删除cookie时,它就可以正常工作了。
我还需要什么设置才能让它工作?
不确定这是否是您想要的,但我使用的是laravel 5.3,必须添加CORS对API调用的支持,该API调用是从其他应用程序对我的应用程序进行的,这就是我所做的。
在app\Http\Middlewear中,我创建了一个名为Cors的文件。php并将其放置在以下位置:
<?php namespace App\Http\Middleware;
use Closure;
class Cors {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
header("Access-Control-Allow-Origin: *");
// ALLOW OPTIONS METHOD
$headers = [
'Access-Control-Allow-Methods'=> 'POST, GET, OPTIONS, PUT, DELETE',
'Access-Control-Allow-Headers'=> 'Content-Type, X-Auth-Token, Origin'
];
if($request->getMethod() == "OPTIONS") {
// The client-side application can set only headers allowed in Access-Control-Allow-Headers
return Response::make('OK', 200, $headers);
}
$response = $next($request);
foreach($headers as $key => $value)
$response->header($key, $value);
return $response;
}
}
然后在App\Http\Kernel.php里面的保护$routeMiddleware我添加
'cors' => \App\Http\Middleware\Cors::class,
然后在我的路线上,无论什么需要CORS,我都添加了中装
Route::post('/my/api/call', 'MyController@MyApiRoute')->middleware(['cors']);
本文向大家介绍JS设置cookie、读取cookie,包括了JS设置cookie、读取cookie的使用技巧和注意事项,需要的朋友参考一下 JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。 而cookie是运行在客户端的,所以可以用JS来设置cookie。 js设置cookie方法汇总: 第一种: 第二种: 第三个例子 注意:
我从互联网上搜索了很多来设置凌空的请求超时。我最终得到了重试策略的解决方案,但当研究它不设置超时时,它会设置请求的重试时间,但我不想重试我的请求。我想增加凌空请求超时,以便较慢的网络可以访问数据,凌空超时设置为5秒,这意味着如果网络直到5秒才连接,它将抛出超时异常。我如何管理更改时间以从服务器获取响应。 我的代码是 我有两个问题-- (1) 它会在30秒后重试请求吗? (2)如何设置请求超时30秒
我在尝试运行我的代码时遇到了这个错误,这是一个简单的javafx代码来加载一个fxml文件,我尝试了我在这里找到的解决方案,但没有一个对我有效。很抱歉,如果格式不是很好,这是我在这里的第一个帖子,并且很抱歉,如果我在屠杀语言,英语不是我的第一语言。提前道谢! 这是事情的组织方式
我创建了这段代码,其中大部分代码都是使用toUpperCase,它应该使单词的每个首字母都大写。没有错误,因此我不确定该方法当前为何不起作用。为什么会这样呢。
这里,我需要将cookie-header设置为不显式地添加cookie-header(像浏览器那样)。尝试这样做时,会给出错误“”。 虽然我已经找到了一个补丁,并成功地发送了cookie-header。但想知道为什么设置cookie-header被禁用了?我曾经读过,发现它是数据完整性和安全性所必需的,但在这种情况下,什么安全性可以被破坏,没有提到哪里。我想评估一下,如果我使用补丁,这个数据完整性
我尝试过交替cors设置,但没有成功。客户端调用使用axios,并设置了。