Ответ 1
Вы пытались установить это так?
let config = WKWebViewConfiguration()
config.setValue(true, forKey: "allowUniversalAccessFromFileURLs")
Я загружаю локальный html файл в IOS WKWebview
с помощью loadFileURL: allowingReadAccessToURL
.
Но когда я отправляю запрос ajax, он терпит неудачу.
Ошибка:
Происхождение null не разрешено Access-Control-Allow-Origin.
Можно ли установить некоторые свойства для исправления этой ошибки, например, в Android, мы можем использовать setAllowUniversalAccessFromFileURLs
?
Вы пытались установить это так?
let config = WKWebViewConfiguration()
config.setValue(true, forKey: "allowUniversalAccessFromFileURLs")
Попробуйте использовать loadRequest вместо loadFileURL. Это сработало для меня:
NSString* path = [[NSBundle mainBundle] pathForResource:@"pageName" ofType:@"html"];
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];
[self.webView loadRequest:request];
После этого мой запрос работал нормально, в то время как раньше у меня была ошибка "Не могу сделать запросы с нуля".
если вы хотите читать из файла 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)
В Chrome запросы CORS не будут работать с локального хоста, несмотря на правильные заголовки CORS, просто говоря... продолжайте бить меня по этому поводу