JS里的POST方法如何设置cookie?

JS里的POST方法如何设置cookie?,第1张

如果这段POST代码和提交的目标页面不在同一个域,脚本是没权限给它设置cookies的,这是浏览器的基本保护措施。

如果是同一个域,直接在本页面设置cookies就行了,无需给POST数据包中插入cookies.

//发送post请求的同时传入cookie

+ (void)requestCookieWithPath:(NSString *)path

Params:(NSDictionary *)params

Method:(NSString *)method

Success:(HttpSuccessBlock)success{

//创建post请求

//创建AFHTTPClient对象

AFHTTPClient *client = [AFHTTPClient clientWithBaseURL:[NSURL URLWithString:kBaseUrl]]

NSMutableURLRequest *post = [client requestWithMethod:method path:path parameters:params]

NSData *cookiesData = [[NSUserDefaults standardUserDefaults]objectForKey:@"Set-Cookie"]

if ([cookiesData length]) {

NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesData]

NSHTTPCookie *cookie

for (cookie in cookies) {

[[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookie]

}

}

//创建AFJSONRequestOperation对象

NSOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:post success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {

success(JSON)

} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {

NSLog(@"error = %@",error)

//请求超时提示

NSString *errorStr = [[NSString alloc]initWithFormat:@"%@",error]

NSString *theError = @"The request timed out."

if ([errorStr rangeOfString:theError].length >0) {

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"提示" message:@"请求超时" delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil]

[alert show]

}

}]

//开始请求

[operation start]

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11313334.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存