我使用WKWebview
在IOS loadFileURL: allowingReadAccessToURL
上加载本地html文件。
但是当我发送ajax请求时,它失败了。
错误是:
Access-Control-Allow-Origin不允许使用原点。
我是否可以设置一些属性来修复此错误,例如在Android中,我们可以使用setAllowUniversalAccessFromFileURLs
?
答案 0 :(得分:2)
您是否尝试过这样设置?
let config = WKWebViewConfiguration()
config.setValue(true, forKey: "allowUniversalAccessFromFileURLs")
答案 1 :(得分:0)
尝试使用loadRequest而不是loadFileURL。它对我有用:
NSString* path = [[NSBundle mainBundle] pathForResource:@"pageName" ofType:@"html"];
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];
[self.webView loadRequest:request];
之后,我的查询工作正常,而我有一个'无法发出任何来自null的请求'错误之前。
答案 2 :(得分:0)
如果要从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)
答案 3 :(得分:0)
在Chrome上,尽管使用了正确的CORS标头,但在本地主机上,CORS请求将无法正常工作,只是说..继续努力奋斗
答案 4 :(得分:0)
使用以下配置设置将WkWebView本地加载到HTML(文件URL)时,WkWebView对我有用
WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKUserContentController *userContentController = [[WKUserContentController alloc] init];
[theConfiguration.preferences setValue:@"TRUE" forKey:@"allowFileAccessFromFileURLs"];
[theConfiguration setValue:@"TRUE" forKey:@"allowUniversalAccessFromFileURLs"];
设置以上设置后,原点将以“ file://”而不是null传递