반응형
IOS9 WK Web View접근 제어 허가 발신지
로컬 html 파일을 IOS에 로드합니다.WKWebview
사용.loadFileURL: allowingReadAccessToURL
..그런데 내가 ajax 요청을 보내면 실패한다.
에러는 다음과 같습니다.
출발지 null은 Access-Control-Allow-Origin에서 허용되지 않습니다.
이 오류를 수정하기 위해 몇 가지 속성을 설정할 수 있습니까? 예를 들어 Android에서는setAllowUniversalAccessFromFileURLs
?
이렇게 세팅해 봤어요?
let config = WKWebViewConfiguration()
config.setValue(true, forKey: "allowUniversalAccessFromFileURLs")
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"];
위의 설정을 설정하면 오리진은 null이 아닌 "file://"로 전달됩니다.
loadFileURL 대신 loadRequest를 사용해 보십시오.효과가 있었습니다.
NSString* path = [[NSBundle mainBundle] pathForResource:@"pageName" ofType:@"html"];
NSURLRequest* request = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]];
[self.webView loadRequest:request];
그 후, 이전에 "Cannot make any requests from null" 에러가 발생했을 때, 쿼리는 정상적으로 동작했습니다.
Chrome에서는 로컬호스트에서 CORS 요구가 제대로 된 CORS 헤더를 디스패치하는 것은 동작하지 않습니다.그것에 대해 계속 머리를 부딪치다
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)
언급URL : https://stackoverflow.com/questions/33515124/ios9-wkwebview-access-control-allow-origin
반응형
'sourcecode' 카테고리의 다른 글
C#을 사용하여 서버에 JSON을 게시하려면 어떻게 해야 합니까? (0) | 2023.03.29 |
---|---|
useState 초기값을 함수로 사용하는 경우 (0) | 2023.03.29 |
json 인코딩 문자열 내에서 서브 어레이 데이터 주위에 대괄호를 추가하는 방법은 무엇입니까? (0) | 2023.03.29 |
에서 C# 개체를 JSON 문자열로 변환하려면 어떻게 해야 합니까?인터넷? (0) | 2023.03.29 |
React + Redux - 폼 컴포넌트에서 CRUD를 처리하는 가장 좋은 방법은 무엇입니까? (0) | 2023.03.29 |