XMLHttpRequest cannot load file from android asset

2019-02-09 20:52发布

I am new to hybrid development. I wrote a small application which launches webview. I have XML, JS files copied in /asset folder.

App works fine on my samsung tablet but I get following errors on emulator

05-30 06:09:07.080: I/chromium(1245): [INFO:CONSOLE(0)] "XMLHttpRequest cannot load file:///android_asset/resource/service_config.xml. Cross origin requests are only supported for HTTP.", source: file:///android_asset/Startup.html (0)

I got to know it happens due to chrome browsers security model and android webview too uses the same component as chrome browser. But all these largely related to chrome browser not addressing the issue on emulator.

Appreciate any help on this issue.

Thanks,
iuq

1条回答
趁早两清
2楼-- · 2019-02-09 21:25

got the same error. I fixed it by changing some settings of the webview in the activities onCreate() method as follows:

// settings for webview
mWebView = (WebView)findViewById(R.id.activity_main_webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setPluginState(PluginState.ON);
mWebView.getSettings().setAllowFileAccess(true);
mWebView.getSettings().setAllowContentAccess(true);
mWebView.getSettings().setAllowFileAccessFromFileURLs(true);
mWebView.getSettings().setAllowUniversalAccessFromFileURLs(true);

//load file
mWebView.loadUrl("file:///android_asset/www/index.html");

Hope that might help you :)

查看更多
登录 后发表回答