SecurityError(DOM Exception 18):操作是不安全的WKWebkit iOS 10

时间:2016-11-07 11:12:25

标签: javascript ios uiwebview ios10 wkwebview

  • 我正在UIWebView iOS 10.x Simulator上加载一个网页,效果很好。
  • 现在我正在尝试在WKWebView中加载相同的网页 -

    @interface ViewController2 ()
    @property(strong,nonatomic) WKWebView *webView;
    @property (strong, nonatomic) NSString *productURL;
    @end        
    @implementation ViewController2            
        - (void)viewDidLoad
          {
            [super viewDidLoad];
            self.productURL = @"http://192.168.1.157/rockwellApp_v2/?city=719";
            NSURL *url = [NSURL URLWithString:self.productURL];
            NSURLRequest *request = [NSURLRequest requestWithURL:url];
    
            _webView = [[WKWebView alloc] initWithFrame:self.view.frame];
            [_webView loadRequest:request];
            _webView.frame = CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
            [self.view addSubview:_webView];
        }
    @end
    

但无法加载完整的网页 当我在WebKit Nightly中调试WKWebView时,它在控制台中给出了错误,如SecurityError (DOM Exception 18): The operation is insecure.

更新1 错误截图 - enter image description here

1 个答案:

答案 0 :(得分:1)

使用无效或不安全的参数调用window.history.pushState()会触发异常:SecurityError (DOM Exception 18): The operation is insecure.

您加载的页面中的脚本很可能会尝试推送一些使用硬编码域或方案的历史记录(例如http://example.com),这与您当前的域http://192.168.1.157不匹配。

未捕获的异常将阻止脚本的其余部分进行评估。这就是为什么它没有完全加载/渲染。

要调试此问题,请在Web检查器中添加异常断点,然后使用Web调试器作为所选窗口按cmd + r来刷新页面。