我尝试在Android的webview中使用ajax post请求来加载一个html页面。当我使用loadUrl方法加载webview时,javascript可以正常工作,但是当我尝试使用loadData方法(我需要它)加载时,我会收到一个错误:“
我的oncreate函数如下:
我的JavaScript代码如下:
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);
}
});
谢谢