要在Angular / Cordova / IOS应用重新启动时持久化PHPSESSID cookie,可以使用withCredentials选项来处理跨域请求并将cookie发送到服务器。
首先,在Angular的HTTP请求中,设置withCredentials为true,以便将cookie发送到服务器:
import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) {}
// 在请求中设置withCredentials为true
this.http.get('https://example.com/api', { withCredentials: true })
.subscribe(response => {
// 处理响应
}, error => {
// 处理错误
});
接下来,在Cordova的config.xml文件中添加以下配置,以允许跨域请求和使用cookie:
最后,在IOS的AppDelegate.m文件中,添加以下代码来处理跨域请求和使用cookie:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 允许跨域请求
[[NSUserDefaults standardUserDefaults] registerDefaults:@{@"UserAgent": @"Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Mobile/14A300"}];
// 允许使用cookie
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
return YES;
}
通过设置withCredentials为true并进行必要的配置,您可以在Angular / Cordova / IOS应用重新启动时持久化PHPSESSID cookie。