【问题标题】:IOS9 WKWebView Access-Control-Allow-OriginIOS9 WKWebView Access-Control-Allow-Origin
【发布时间】:2016-02-04 13:12:20
【问题描述】:

我使用loadFileURL: allowingReadAccessToURL在IOS WKWebview上加载本地html文件。 但是当我发送ajax请求时,它失败了。

错误是:

Access-Control-Allow-Origin 不允许 Origin null。

我可以设置一些属性来修复这个错误,比如在Android中,我们可以使用setAllowUniversalAccessFromFileURLs吗?

【问题讨论】:

  • 你的ajax请求到底是什么?

标签: ajax wkwebview


【解决方案1】:

你试过这样设置吗?

let config = WKWebViewConfiguration()
config.setValue(true, forKey: "allowUniversalAccessFromFileURLs")

【讨论】:

  • 我从 CSS 中引用的图像 url 中得到了 null 错误。这解决了它。
【解决方案2】:

当 HTML 在本地加载(文件 URL)时,WkWebView 下面的配置设置为 WkWebView 为我工作

WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKUserContentController *userContentController = [[WKUserContentController alloc] init];

[theConfiguration.preferences setValue:@"TRUE" forKey:@"allowFileAccessFromFileURLs"];
[theConfiguration setValue:@"TRUE" forKey:@"allowUniversalAccessFromFileURLs"];

当您设置上述设置时,origin 将作为“file://”而不是 null 传递

【讨论】:

    【解决方案3】:

    尝试使用 loadRequest 而不是 loadFileURL。它对我有用:

    NSString* path = [[NSBundle mainBundle] pathForResource:@"pageName" ofType:@"html"];
    NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];
    [self.webView loadRequest:request];
    

    在那之后,我的查询工作正常,而我之前有一个“无法从 null 发出任何请求”错误。

    【讨论】:

      【解决方案4】:

      在 Chrome 上,尽管 CORS 标头正确,但 CORS 请求无法从 localhost 进行,只是说.. 继续敲我的头

      【讨论】:

        【解决方案5】:

        如果你想从localhtml文件中读取,你必须设置allowReadAccess

        let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
        let documentsURL = URL(fileURLWithPath: documentsPath, isDirectory: true)
        let finalURL = URL(string: htmlurl)
        webview.loadFileURL(finalURL!, allowingReadAccessTo: documentsURL)
        

        【讨论】:

          猜你喜欢
          • 2017-06-15
          • 2016-09-30
          • 2015-06-17
          • 2017-12-29
          • 2019-02-07
          • 2013-09-09
          • 2015-12-10
          • 2013-10-28
          相关资源
          最近更新 更多