场景:验证用户。抓住cookie,为其他请求设置cookie。精细。我无法立即弄清楚的是如何在没有将我的下一个视图推送到屏幕上的情况下处理身份验证失败。如果我的回答是{errors:{password:not match}}我应该解析这个响应并相应地创建一个条件吗?我应该只检查响应代码吗?我可以说,我正在努力做到这一点。我添加了下一个视图:
所以,当连接完成时,它会自然地推送下一个视图。如果验证失败,我想阻止它进入这里。也许我不应该从这里推下我的下一个观点。那么呢?
答案 0 :(得分:1)
我检查了重定向路径:这显示了身份验证是否正常。
- (NSURLRequest*)connection:(NSURLConnection*)connection willSendRequest:(NSURLRequest*)request redirectResponse:(NSURLResponse*)redirectResponse
{
NSLog(@"willSendRequest (from %@ to %@)", redirectResponse.URL, request.URL);
NSString *from = [NSString stringWithFormat:@"%@",redirectResponse.URL];
NSString *to = [NSString stringWithFormat:@"%@",request.URL];
if([from isEqualToString:serverSignInPath] )
//logged=true
else
//logged=false
}
答案 1 :(得分:0)
NSURLResponse *HTTPResponse = (NSURLResponse *)response;
NSInteger statusCode = [HTTPResponse statusCode];
if (404 == statusCode || 500 == statusCode) {
[connection cancel];
[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] setNetworkActivityIndicatorVisible:NO];
}
这样,它永远不会到达connectionDidFinishLoading来推送下一个视图。
Rails响应应该如下所示。
render :json => @foo.to_json, :status => 404