如何处理“太多 HTTP 重定向”错误

Posted

技术标签:

【中文标题】如何处理“太多 HTTP 重定向”错误【英文标题】:How to handle "too many HTTP redirects" Error 【发布时间】:2016-08-01 15:21:15 【问题描述】:

当我将网站加载到我的可可应用程序的 webview 中时,就会出现这个问题。 我的问题描述:

错误域=NSURLErrorDomain 代码=-1007 “HTTP 重定向过多” UserInfo=0x18d17d56NSErrorFailingURLStringKey=URLHERE, NSErrorFailingURLKey=URLHERE,NSLocalizedDescription=HTTP 太多 重定向

为什么会出现这个错误 怎么处理

我浏览了以下链接,但对我没有帮助

Too many HTTP redirects"too many HTTP redirects" while using Alamofire Upload Multipart Form Datatoo many HTTP redirects, Google Drive, ios SDK 等等……

更新:

- (NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource 
    if(redirectResponse)
    
        if([redirectResponse.URL.absoluteString isEqualToString:self.webviewLoadingURL.absoluteString])
        
            NSLog(@"both redirect and load url is same");
        
    
    return request;

我在 webview 中获得了相同的重定向和加载 URL。

【问题讨论】:

【参考方案1】:

我在 iPhone XS 上遇到过这种情况。无论我做什么,它都只针对特定的 url 报告“太多 HTTP 重定向”。即使没有互联网连接!删除该应用并重新安装即可解决问题。

【讨论】:

我在我的 cocoa (osx) 应用程序中发现了这个问题。但很高兴听到您在 iPhone 上重新安装 (iOS) 应用程序可能会解决此问题。我已将您的答案提供给 +1,因此可能对其他人有所帮助 这可能意味着缓存中有错误(重定向)响应。 汤姆。你的回答对我也有帮助。【参考方案2】:

这几乎总是由导致网页重定向到自身(可能通过另一个中间 URL)的服务器配置错误引起的。除非问题是由请求无效/不正确 URL 的客户端代码引起的,否则您可能无法在客户端解决此问题。

如果您询问如何向用户显示错误,我会说您应该像对待 404 一样对待它。该 URL 不太可能很快开始工作。

【讨论】:

在我的情况下,发生了同样的错误,但如果我在另一个浏览器应用程序(如 iOS 中的 Chrome)中检查相同的 URL,则它可以正常工作。 这可能意味着重定向是由缺少cookie或未知浏览器字符串引起的。 在我的例子中,我错过了 URL 开头的 www。所以在浏览器和 POSTMAN 中它总是正确的,但是由于应用程序无法直接联系服务器(因为缺少 www),所以响应是一个重定向......疯狂: 如果这是一个 POST 请求,值得注意的是 POST 操作在重定向后不会被重播,因此理想情况下,您的服务器应该配置为直接处理 POST 请求,而不是将用户重定向到万维网网站。 (我假设这就是正在发生的事情。)

以上是关于如何处理“太多 HTTP 重定向”错误的主要内容,如果未能解决你的问题,请参考以下文章

Service Worker:如何处理 302 重定向响应

如何处理 Spring Boot 重定向到 /error?

如何处理 Codeigniter 上的多语言 uri 重定向?

如何处理表单提交而不对用户可见重定向

如何处理 C++ 重定向进程的输出

如何处理对客户端反应应用程序的外部重定向?