android - 允许在 Android Webview + jquery mobile 中进行远程 ajax 调用

标签 android ajax jquery-mobile cross-domain android-webview

我正在使用 jquerymobile 开发一个 javascript/HTML 应用程序,它向远程服务器发出 ajax 请求。该应用程序在 Chrome 上运行良好(仅在禁用网络安全的情况下启动 chrome)但是当我将它嵌入到 Android 应用程序(一个简单的 web View )的 assets/目录中时,远程 ajax 调用失败。因此我想这可能是一个跨域问题。我知道 phonegap 没有这个问题,但如果可能的话我不想使用 phonegap。所以问题是:如何在 Android webview 应用程序中禁用跨域保护?

这是 Activity 代码:

public class Moby extends Activity {

@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_moby);

    WebView mbrowser = (WebView) findViewById(R.id.webView1); //get the WebView from the layout XML
    if (Build.VERSION.SDK_INT >= VERSION_CODES.JELLY_BEAN) 
        mbrowser.getSettings().setAllowUniversalAccessFromFileURLs(true);
    //mbrowser.setWebChromeClient(new WebChromeClient());
    mbrowser.setWebViewClient(new WebViewClient());
    mbrowser.loadUrl("file:///android_asset/index.html"); //set the HTML
    WebSettings settings = mbrowser.getSettings();
    settings.setJavaScriptEnabled(true);
}

<uses-permission android:name="android.permission.INTERNET" />

并且我已经在我的 html 页面中设置了 jquerymobile 跨域参数:

<script src="script/jquery-1.8.2.js"></script>
<script>
 $(document).bind("mobileinit", function(){
 $.support.cors = true;
 $.mobile.allowCrossDomainPages = true;       
}); 
</script>
<script src="script/jquery.mobile-1.2.0.js"></script>

最佳答案

我没有足够的积分来发表评论,但是,请查看以下内容:

ajax working on some Android devices, not in other

具体来说,基于 Chrome 的 webViews 需要以下内容:

webView.getSettings().setAllowUniversalAccessFromFileURLs(true);

编辑:抱歉,我刚刚看到你已经在这样做了——我在我这边测试了这个,它似乎已经解决了我的问题(通过 ajax 加载本地链接时出现 access-control-allow-origin 错误).

关于android - 允许在 Android Webview + jquery mobile 中进行远程 ajax 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13956726/

相关文章:

android - 错误 : requested 'ranchu' not available

javascript - CRUD 通过 ajax 代理批量更新/插入

JQuery 对话框销毁

javascript - 如何在jqm的 ListView 中拖放li?

javascript - 为什么 mailto 不包含链接参数?

jquery mobile 附加按钮无法正确呈现

android - 找不到类 'com.google.maps.android.heatmaps.HeatmapTileProvider$Builder'

android - 如何使用相机作为 Facebook Android Webview 中文件输入的来源

android - 任务应用程序 :transformClassesWithDesugarForDebug error on Android Studio 3. 0 Beta 2 执行失败

javascript - 使用 Ajax 刷新 ASP.NET MVC 中的 Bootstrap 模式