我的角度客户端与后端分离,我在后端启用了cors,一切正常,但我的身份验证失败,因为cookie没有添加到请求中.
在线搜索后,我发现我应该设置{withCredentials : true}每个http请求.我设法在一个请求上执行它并且它可以工作,但不是在所有请求上.
我尝试使用BrowserXhr 如何在Angular2中的所有请求的请求标头中发送"Cookie"?但它不起作用,它也被弃用了.
我也尝试过RequestOptions但它没有用.
如何在每个http请求中设置{withCredentials:true}?
后来编辑:
@Injectable()
export class ConfigInterceptor implements HttpInterceptor {
constructor(private csrfService: CSRFService) {
}
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let token = this.csrfService.getCSRF() as string;
const credentialsReq = req.clone({withCredentials : true, setHeaders: { "X-XSRF-TOKEN": token } });
return next.handle(credentialsReq);
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码连接到socket.io-client:
服务器:
// Load requirements
var http = require('http'),
io = require('socket.io');
// Create server & socket
var server = http.createServer(function(req, res){
// Send HTML headers and message
res.writeHead(404, {'Content-Type': 'text/html'});
res.end('<h1>Aw, snap! 404</h1>');
});
server.listen(8080);
io = io.listen(server);
// Add a connect listener
io.sockets.on('connection', function(socket) {
console.log('Client connected.');
// Disconnect listener
socket.on('disconnect', function() {
console.log('Client disconnected.');
});
});
Run Code Online (Sandbox Code Playgroud)
客户:
console.log('1');
// Connect to server
var io = require('socket.io-client')
var socket = io.connect('localhost:8080', {reconnect: true});
console.log('2');
// Add a connect …Run Code Online (Sandbox Code Playgroud) 我有一个很大的id列表,我想从mongodb中删除多个模型,主要思想是我对多个模式中的文档具有相同的id,我想从每个模型中删除一个文档.我是这样做的:
_.each(wrongList, function(item) {
UPUSTP.find({id: item.id}).remove(function(err) {
if (err)
console.log("Error while deleting " + err.message);
})
UPUANAM.find({id: item.id}).remove(function(err) {
if (err)
console.log("Error while deleting " + err.message);
})
UPUEXE.find({id: item.id}).remove(function(err) {
if (err)
console.log("Error while deleting " + err.message);
})
UPUEXO.find({id: item.id}).remove(function(err) {
if (err)
console.log("Error while deleting " + err.message);
})
UPUPROC.find({id: item.id}).remove(function(err) {
if (err)
console.log("Error while deleting " + err.message);
})
})
Run Code Online (Sandbox Code Playgroud)
问题是我有14000+个ID wrongList并且查询有效但是需要花费很多时间才能完成...我怎样才能增加删除的时间?我可以批量删除或类似的东西吗?
我使用Google的PageSpeed chrome扩展程序测试了我的本地网络服务器.其中一个结果是我的Web服务器没有启用压缩.我使用快速4.x在后端使用节点js.我用谷歌搜索了一下压缩数据的解决方案,我发现https://github.com/expressjs/compression是一个用于表达的中间件.我试着像这样使用它:
var app = express();
var compression = require('compression');
var server = http.createServer(app);
server.listen(CONFIG.PORT);
app.use(compression());
Run Code Online (Sandbox Code Playgroud)
即使我做了这个页面,速度仍然建议压缩数据.我究竟做错了什么?
我正在开发一个 flutter 应用程序,该应用程序应该有一个适用于网络和移动设备的通用代码库。
我的应用程序将有一个谷歌地图,据我所知,没有一个包可以满足所有平台。
google_maps_flutter - seems to work only for mobile (IOS / Android)
google_maps_flutter_web - seems to work only for web
Run Code Online (Sandbox Code Playgroud)
因此,很可能我必须使用这些单独的包创建两个单独的 MapWidget,一个用于网络,一个用于移动设备。
对于移动设备:
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
class MapSample extends StatefulWidget {
MapSample({Key? key}) : super(key: key);
@override
State<MapSample> createState() => MapSampleState();
}
class MapSampleState extends State<MapSample> {
final Completer<GoogleMapController> _controller = Completer();
static const CameraPosition _kGooglePlex = CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
zoom: 14.4746,
);
@override
Widget build(BuildContext context) {
return GoogleMap(
mapType: MapType.hybrid,
initialCameraPosition: …Run Code Online (Sandbox Code Playgroud) 如何在每次调用时打印haskell中的列表或内容,例如:
funct a list = funct (a + 1) (a : list)
print list here ??????? but how ?
Run Code Online (Sandbox Code Playgroud) 我有一个python类,我们称之为AClass,另一个是MyThread,它扩展了Thread.在那个AClass我创建MyThread类的2个对象,我也有一个信号量,我将它作为参数提供给MyThread类的构造函数.我的问题是,如果我修改一个MyThread对象中的信号量,另一个MyThread对象会看到差异吗?例如:
class AClasss:
def function:
semafor = threading.Semaphore(value=maxconnections)
thread1 = Mythread(semafor)
thread2 = Mythread(semafor)
thread1.start()
thread1.join()
thread2.start()
thread2.join()
class MyThread(Thread):
def __init__(self,semaphore):
self.semaphore = semaphore
def run():
semaphore.acquire()
"Do something here"
semaphore.release()
Run Code Online (Sandbox Code Playgroud)
那么thread1是否看到了thread2所做的信号量变化,反之亦然?
我有一些来自不同控制器的数据,这些数据使用https://github.com/fredricrylander/angular-webstorage存储在 sessionStorga 中。数据存储正常并且在当前会话中可用。我面临的问题是制作一个控制器来观察 webstorage.session 中的变化,我是这样做的:
app.controller(
'updateDataController',
['$scope','$http','$sce','$location','$routeParams', '$rootScope', '$document', 'webStorage', '$interval', 'md5',
function($scope,$http,$sce,$location,$routeParams, $rootScope, $document, webStorage, $interval, md5) {
$scope.mySessionStorage = webStorage.session;
$scope.$watch('mySessionStorage', function (newVal, oldVal) {
console.log("The web storage has changed");
}, true);
}
]);
Run Code Online (Sandbox Code Playgroud)
我只得到一次 console.log 输出。即使我更改了 webStorage.session 的内容,我也没有收到任何日志。可能是什么问题呢?
在开始使用 flutter 和 redux 构建应用程序时,我遇到了以下问题:处理网络请求或任何异步操作的最佳方法是什么?
上下文:当请求完成时,进行异步调用以从服务器端获取字符串(在我的例子中只是 Future.delayed),更新状态并查看视图中的更改。
第一种方法:
创建一个具有异步调用函数的中间件类,该函数将在调用 NextDispacther 完成后等待异步事件完成,并使用将在减速器中处理的新操作
class UserTypeMiddleware extends MiddlewareClass<AppState> {
@override
void call(Store<AppState> store, action, NextDispatcher next) async{
if (action is GetTitleAction) {
String title = await Future<String>.delayed(Duration(seconds: 2), () {
return "This is a title ";
});
next(UpdateTitleAction(title));
} else {
next(action);
}
}
}
Run Code Online (Sandbox Code Playgroud)
第二种方法:
创建一个 typedMiddleware 做同样的事情,但它通过 store.dispatch 调度操作
TypedMiddleware<AppState, GetTitleAction> userTypeMiddleware() =>
TypedMiddleware<AppState, GetTitleAction>(_getTitle);
Future _getTitle(Store<AppState> store, GetTitleAction action, NextDispatcher next) async {
String title = await Future<String>.delayed(Duration(seconds: 2), () …Run Code Online (Sandbox Code Playgroud) 我想从另一个 NodeJS 服务器或只是一个 NodeJS 脚本调用 Firebase 的云函数。
我的 firebase 函数是 onCall 函数。
我正在使用https://www.npmjs.com/package/firebase-admin与 firebase 交互,但它似乎没有调用云函数的方法...
我可以用其他方式做吗?比如http请求?
node.js firebase google-cloud-functions firebase-admin google-cloud-firestore
node.js ×5
flutter ×2
angular ×1
angularjs ×1
compression ×1
cookies ×1
cors ×1
express ×1
firebase ×1
flutter-web ×1
google-maps ×1
haskell ×1
http ×1
javascript ×1
mongodb ×1
mongoose ×1
oauth-2.0 ×1
python ×1
redux ×1
socket.io ×1
web-storage ×1
websocket ×1