Android Studio Javascript POST из веб-просмотра меняется на GET - PullRequest
0 голосов
/ 26 апреля 2019

Мое приложение 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(по журналам сервера)

1 Ответ

0 голосов
/ 27 апреля 2019

Это jsonp: если вы укажете и POST, и jsonp в функции jaery .ajax, то при переходе в тот же домен он будет POSTed, а при переходе между доменами он будет заменен на GET.

Эта проблема не связана с Android или веб-просмотром.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...