0

我有宁静的网络服务。我想通过android中的ajax从本地restful获取json(使用webview)。这是应用程序 android 中的 htmt 文件中的代码 ajax

函数 Get(){ $.ajax ({

            url: "[http://localhost:31132/api/Customer][1]",
            type: "GET",
            dataType: "json",                
            success: function (data) {                    
                $('#d').append("sucess");
            },
            error: function (request, status, error) {                  
                $('#d').append(error);
            }
        });
    }

这段代码在浏览器上运行得很好。但它不在android中运行。模拟器 android 使用 API 级别 10。

感谢:D

4

2 回答 2

0

报价

默认情况下,WebView 不提供类似浏览器的小部件,不启用 JavaScript 并且忽略网页错误。

你做过:

webview.getSettings().setJavaScriptEnabled(true);

更新如果 Web 服务没有按原样使用标准 Android 浏览器运行,那么它没有使用 WebView 运行也就不足为奇了。尽管问题仍然存在,您是否将浏览器配置为将自己标识为 Android 或“桌面”。我没有详细研究您发布的视频,但我的印象是您自己编写了 Web 服务,使用了一些(微软?)框架。关键问题是:这个框架如何处理 Android 请求,例如关于它发送的用户代理(浏览器标识)。总的来说,Android 对 JavaScript 的支持还是比较好的,编写好的 AJAX 库可以处理各种平台。因此,我首先要

  1. try 是将 UserAend 标识设置为伪造桌面浏览器的内容,然后重试。如果这不起作用,
  2. 确定 Web 服务在给定配置中实际交付给客户端的 AJAX 文件是很有价值的。最后,如果这不起作用,
  3. 查看 WebView 发出的错误消息是明智的。
于 2013-02-20T07:23:11.840 回答
0

在 Web 服务 URL 中尝试使用 10.0.2.2 而不是 localhost。localhost 或 127.0.0.1 指向模拟器/安卓设备,而 10.0.2.2 是主机环回接口的特殊别名(即开发机器上的 127.0.0.1)。

尝试http://10.0.2.2:31132代替http://localhost:31132

于 2013-02-20T09:06:30.967 回答