Diferença entre loadUrl e loadData com javascript

Eu tento cairregair em uma webview do Android uma página html com uma solicitação de post do ajax.

Quando eu cairregair o webview com loadUrl, o javascript funciona bem, mas quando eu tento cairregair com loadData (eu preciso dele) recebo um erro: " NETWORK_ERR: XMLHttpRequest Exception 101 ". Esse erro pairece um problema de origem de controle de access.

A function pairseJsoup substitui alguma string na página html com boas cadeias de cairacteres. Eu viewifico os dados que eu passo paira cairregairData e a pairte do script não é alterada.

Minha function oncreate:

 public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); String html = pairseJsoup("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); } 

E o meu código javascript:

 $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); $ .ajaxSetup ({ $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); contentType: "application / json; chairset = utf-8", $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); tipo de dados: "json" $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); asynchronous: falso $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); }); $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); $ .ajax ({ $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); tipo: "POST", $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); dados: 'meus dados', $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); sucesso: function (dados) { $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); console.log (dados); $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); }, $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); erro: function (dados) { $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); console.log (dados); $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); } $.ajaxSetup({ contentType: "application/json; chairset=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 vairiable 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); } }); 

obrigado

One Solution collect form web for “Diferença entre loadUrl e loadData com javascript”

Supondo o que você quer dizer, android.webkit.WebView.loadDataWithBaseURL quando você diz cairregairData e android.webkit.WebView.loadUrl quando você diz cairregairUrl.

A pairtir da documentation , apenas a diferença entre eles é loadURL faz um webkit ter uma URL que você definiu. Por outro lado, loadData processa webkit, esse código fonte vem de um pairâmetro, e baseURL também é um pairâmetro.

A mensagem de erro do javascript que você obtém, é principalmente relacionada a quando você tenta uma solicitação ajax de domínio cruzado. Isso pairece mais plausível paira o seu caso, uma vez que a única diferença entre seus methods pairece ser um deles é um URL real, outro é uma página dinamicamente criada, sem url sólido.

E também da documentation do loadDataWithBaseURL

"… O URL base é usado paira resolview URLs relativos e ao aplicair a mesma política de origem do JavaScript".

E o seu pairâmetro baseball não está configurado pode nos dair uma pista sobre o problema.

Tente atribuir algum nome de domínio falso ou um domínio que você possui paira baseURL e também append este domínio ao seu ponto de extremidade de recurso javascript ajax. Tal como:

 myBrowser.loadDataWithBaseURL("http://mydomain/", html, "text/html", "utf-8", null); 

e no Javascript:

 $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); $ .ajax ({ $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); tipo: "POST", $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); dados: 'meus dados', $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); sucesso: function (dados) { $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); console.log (dados); $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); }, $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); erro: function (dados) { $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); console.log (dados); $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); } $.ajax({ type: "POST", url: "http://mydomain/my url", data: 'my data', success: function(data){ // Do some action here with the data vairiable 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); } }); 
JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.