猿问

XMLHttpRequest 不会抛出错误但不会调用 onload

我正在制作一个 android 应用程序,以便我可以通过手机编辑服务器上的值,但是当我尝试发送获取请求以获取初始值时,我没有得到任何响应。


我使用 android web 视图能够使用 javascript,因为我不知道 java


它在 android 之外(在快速服务器上)运行时有效,所以我怀疑它与 android web 视图有关


MainActivity.java


public class MainActivity extends AppCompatActivity {


    WebView WebViewWithCSS;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        WebViewWithCSS = (WebView)findViewById(R.id.webView);


        WebSettings webSetting = WebViewWithCSS.getSettings();

        webSetting.setJavaScriptEnabled(true);


        WebViewWithCSS.setWebViewClient(new WebViewClient());

        WebViewWithCSS.loadUrl("file:///android_asset/www/index.html");

    }


    private class WebViewClient extends android.webkit.WebViewClient

    {

        @Override

        public boolean shouldOverrideUrlLoading(WebView view, String url)

        {

            return super.shouldOverrideUrlLoading(view, url);

        }

    }

}

javascript文件


  var getJSON = function(url, callback) {

      var xhr = new XMLHttpRequest();

      xhr.open('GET', url, true);

      xhr.responseType = 'json';

      xhr.onload = function() {

        var status = xhr.status;

        if (status === 200) {

          callback(null, xhr.response);

        } else {

          callback(status, xhr.response);

        }

      };

      xhr.send()

  };


  getJSON('http://totalytherealdeal.url/get', function(err, data) {

    console.log(data)

    if (err !== null) {

      console.log(err)

    } else {

      console.log(data)

    }

  });

正如我所说,它不会在调试器中输出任何意外代码。尝试 xhr.send() 时似乎出了点问题,因为它之后不会在 xhr.onload 中运行任何内容或记录数据


蓝山帝景
浏览 178回答 1
1回答

弑天下

确保您在清单中拥有权限:<uses-permission&nbsp;android:name="android.permission.ACCESS_NETWORK_STATE"&nbsp;/> <uses-permission&nbsp;android:name="android.permission.INTERNET"&nbsp;/>另请注意,为了保护其用户,Android 不会处理对任何没有有效 SSL 证书的服务器的 HTTP 请求。
随时随地看视频慕课网APP

相关分类

Java
我要回答