我尝试在 Android webview 中加载一个带有 ajax 发布请求的 html 页面。
当我用 loadUrl 加载 webview 时,javascript 工作正常,但是当我尝试用 loadData 加载(我需要它)时,我得到一个错误:“ NETWORK_ERR: XMLHttpRequest Exception 101
”。此错误听起来像是访问控制起源问题。
parseJsoup 函数将 html 页面中的某些字符串替换为好的字符串。我检查了传递给 loadData 的数据,并且脚本部分没有更改。
我的 oncreate 功能:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String html = parseJsoup("index.html");
setContentView(R.layout.main);
myBrowser = (WebView)findViewById(R.id.mybrowser);
myBrowser.getSettings().setJavaScriptEnabled(true);
myBrowser.setWebViewClient(new MyWebViewClient());
//myBrowser.loadUrl("file:///android_asset/index.html");
myBrowser.loadDataWithBaseURL("", html, "text/html", "utf-8", null);
}
还有我的 javascript 代码:
$.ajaxSetup({
contentType: "application/json; charset=utf-8",
datatype: "json",
async: false,
});
$.ajax({
type: "POST",
url: "my url",
data: 'my data',
success: function(data){
// Do some action here with the data variable that contains the resulting message
document.write("OK "+JSON.stringify(data));
console.log(data);
},
error: function(data){
document.write("KO "+JSON.stringify(data));
console.log(data);
}
});
谢谢