Мое приложение Android Studio полностью веб-просмотра.В веб-представлении есть некоторый javascript (загруженный из папки активов), который работает нормально, за исключением ajax POSTing.Все мои POST-запросы ajax поступают на удаленный веб-сервер как GET-запросы.
Когда я запускаю идентичный код (он обозначен ссылками на webview html и javascript, поэтому на самом деле идентичен) с моего ноутбука, POST приходят какдолжности.Веб-сервер установлен на моем ноутбуке, как и Android Studio и эмулятор.
Исследование: я сократил приложение до простого приложения, которое выдает POST по щелчку элемента html, но все равно приходит квеб-сервер как GET.
Также искал в Интернете, ничего не соответствует этому сценарию, поэтому я ожидаю, что делаю что-то очень глупое.
Android Studio 3.4, JRE 1.8.0.
Вот мойwebview:
public class MainActivity extends AppCompatActivity {
String TAG = "MainActivity";
WebView myWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myWebView = findViewById(R.id.myWebView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
webSettings.setAllowUniversalAccessFromFileURLs(true);
myWebView.loadUrl("file:///android_asset/app.html"); //app.html loads some javascript files
}
Вот javascript в веб-обзоре:
$(document).on("click", "#myelement", (function(e) {
e.preventDefault();
e.stopImmediatePropagation();
$.ajax({
type: 'POST',
url: 'http://192.168.1.7/mywebserver/processdata.php',
data: {'mydataFromForm': 'big bob'},
dataType: 'jsonp',
success: function (reply) {
console.log('ajax success');//I see this, but that's just because processdata.php returns successfully, not because it received a POST
}
});
});
Ожидается: javascript ajax POST поступает на веб-сервер как POST
Факт: POST поступает как GET(по журналам сервера)