Ios UIWebView在表单提交时显示空白页

Ios UIWebView在表单提交时显示空白页,ios,uiwebview,dd-wrt,Ios,Uiwebview,Dd Wrt,我是一名iOS新手(.NET professional),所以这可能是一个简单的问题,但我无法通过so搜索或Google找到任何内容(可能没有找到正确的术语) 我正在编写一个应用程序,通过DD-WRT路由器的web界面显示信息。我在显示初始页面和浏览任何其他页面时没有问题,但是如果我对表单进行任何更改(并且它重定向到apply.cgi或applyuser.cgi),UIWebView是空白的-它应该显示相同的页面,并且表单提交更改。该网站在Mobile Safari中运行良好,我觉得这很有趣,但

我是一名iOS新手(.NET professional),所以这可能是一个简单的问题,但我无法通过so搜索或Google找到任何内容(可能没有找到正确的术语)

我正在编写一个应用程序,通过DD-WRT路由器的web界面显示信息。我在显示初始页面和浏览任何其他页面时没有问题,但是如果我对表单进行任何更改(并且它重定向到apply.cgi或applyuser.cgi),UIWebView是空白的-它应该显示相同的页面,并且表单提交更改。该网站在Mobile Safari中运行良好,我觉得这很有趣,但我猜UIWebView并不完全相同

我认为iOS代码对于显示网页来说是相当标准的,但我会在下面列出它。我不能让你访问我的路由器,因为,好吧,这不是一个好主意:)希望有人与DD-WRT路由器可以帮助(或知道我的问题是无论如何)


我在
webViewDidFinishLoad
方法中使用Javascript做了一些事情,但我知道这不是罪魁祸首,因为当我对它进行注释时,它仍然会发生。

我自己解决了这个问题。我认为部分原因是将用户名和密码放在URL中(这只是一个临时措施),因为我发现该方法在mobile Safari和桌面Chrome中提供了相同的结果。 因此,我在我的项目中添加了一个简单的方法,可以向我的请求添加身份验证,并发现我必须发出一个特定的请求来发布数据,然后重新加载页面以查看更改

(BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)请求导航类型:(UIWebView导航类型)导航类型
方法中,我检查
([request.HTTPMethod isequalString:@“POST”])
,并执行以下操作:

NSString *sPostData = [[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding];

NSArray *aPostData = [sPostData componentsSeparatedByString:@"&"];

NSMutableDictionary *dPostData = [[NSMutableDictionary alloc] init];

//i don't know if this is the best way to set a dictionary, but it works
for (id apd in aPostData)
{
    NSString *key = [apd componentsSeparatedByString:@"="][0];
    NSString *val = [apd componentsSeparatedByString:@"="][1];
    [dPostData setValue:val forKey:key];
}

MKNetworkEngine *engine = [[MKNetworkEngine alloc] init];

MKNetworkOperation *op = [engine operationWithURLString:[request.URL description] params:dPostData httpMethod:@"POST"];

[op setUsername:@"myUserName" password:@"myPassword" basicAuth:YES];

self.postedRequest = TRUE; //a bool I set so, when it comes to webViewDidFinishLoad, I reload the current page

[op start]; //send POST operation
NSString *sPostData = [[NSString alloc] initWithData:request.HTTPBody encoding:NSUTF8StringEncoding];

NSArray *aPostData = [sPostData componentsSeparatedByString:@"&"];

NSMutableDictionary *dPostData = [[NSMutableDictionary alloc] init];

//i don't know if this is the best way to set a dictionary, but it works
for (id apd in aPostData)
{
    NSString *key = [apd componentsSeparatedByString:@"="][0];
    NSString *val = [apd componentsSeparatedByString:@"="][1];
    [dPostData setValue:val forKey:key];
}

MKNetworkEngine *engine = [[MKNetworkEngine alloc] init];

MKNetworkOperation *op = [engine operationWithURLString:[request.URL description] params:dPostData httpMethod:@"POST"];

[op setUsername:@"myUserName" password:@"myPassword" basicAuth:YES];

self.postedRequest = TRUE; //a bool I set so, when it comes to webViewDidFinishLoad, I reload the current page

[op start]; //send POST operation