Ajax IOS9 WKWebView访问控制允许源

Ajax IOS9 WKWebView访问控制允许源,ajax,wkwebview,Ajax,Wkwebview,我使用loadFileURL:allowingReadAccessToURL在IOSWKWebview上加载本地html文件。。 但当我发送ajax请求时,它失败了 错误是: 访问控制允许原点不允许原点为null 我是否可以设置一些属性来修复此错误,例如在Android中,我们可以使用setAllowUniversalAccessFromFileURLs?尝试使用loadRequest而不是loadFileURL。这对我很有用: NSString* path = [[NSBundle mainB

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

错误是:

访问控制允许原点不允许原点为null


我是否可以设置一些属性来修复此错误,例如在Android中,我们可以使用
setAllowUniversalAccessFromFileURLs

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

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

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

如果要从localhtml文件读取,必须设置AlloweradAccess

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

在Chrome上,CORS请求无法从localhost dispite正确的CORS头工作,只是说。。一直用我的头敲那一个

你试过这样设置吗

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

当HTML在本地加载(文件URL)时,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传递

您的ajax请求到底是什么?我从CSS中引用的图像url中得到了null错误。这把它修好了。