Android是否允许本机应用程序禁用超文本传输协议的CORS安全策略://(不是本地/文件)请求?
在我的本机应用程序中,web视图通过 http:// 显示远程html,而不是在本地/文件系统上。这似乎与在网络浏览器中一样受到 CORS 限制。
Worakround:一个本机js桥,用于将ajax请求发送到没有Access-Control-Allow-Origin:*
的跨域。(jsonp或服务器端代理不是一个选项,因为Web服务会检查客户端的cookie ip。)
是否可以为应用内 Web 视图禁用此策略?
如果有一个简单的标志允许js绕过这个限制,限制“原生”应用程序的webview,请告诉我。
以下是帮助我在Xamarin中使用c#的简短版本:
public override WebResourceResponse ShouldInterceptRequest(WebView view, IWebResourceRequest request)
{
if (request.Url.SchemeSpecificPart.StartsWith("//<domain>/"))
{
request.RequestHeaders.Add("Access-Control-Allow-Origin", "*");
}
return base.ShouldInterceptRequest(view, request);
}
此覆盖是针对Android.Webkit完成的。WebViewClient,其中
AFAIK这是不可能的,相信我,我已经尝试了很多方法。
您能做的最好的事情就是覆盖资源加载。请参阅拦截和覆盖来自WebView的HTTP请求
从Android API 21级开始,这是可能的。您可以创建OPTIONS响应,如下所示:
public class OptionsAllowResponse {
static final SimpleDateFormat formatter = new SimpleDateFormat("E, dd MMM yyyy kk:mm:ss", Locale.US);
@TargetApi(21)
static WebResourceResponse build() {
Date date = new Date();
final String dateString = formatter.format(date);
Map<String, String> headers = new HashMap<String, String>() {{
put("Connection", "close");
put("Content-Type", "text/plain");
put("Date", dateString + " GMT");
put("Access-Control-Allow-Origin", /* your domain here */);
put("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT, OPTIONS");
put("Access-Control-Max-Age", "600");
put("Access-Control-Allow-Credentials", "true");
put("Access-Control-Allow-Headers", "accept, authorization, Content-Type");
put("Via", "1.1 vegur");
}};
return new WebResourceResponse("text/plain", "UTF-8", 200, "OK", headers, null);
}
}
,然后从您的 Web 视图客户端实现中调用它,如下所示:
@Override
@TargetApi(21)
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if (request.getMethod().equalsIgnoreCase("OPTIONS")) {
return OptionsAllowResponse.build();
}
return null;
}
这仅适用于API级别21,因为OPTIONS响应需要从WebResourceRequest检查请求的HTTP方法,该方法仅在API 21之后可用。
移动应用程序新手。我正在尝试在我的android应用程序上使用webview。但我的代码中有一个问题。我使用了https://developer.android.com/但它现在不知怎么起作用了。你能查一下我的密码吗。。。。 Android说“无法解决符号webview”... 整个代码都在这里-
java版本“1.8.0_25”java(TM)SE运行时环境(版本1.8-0_2-b18)java热点(TM)64位服务器虚拟机(版本25.25-b02,混合模式) Appia1.3.4.1 Android SDK ro . build . version . SDK = 21.. 使用的设备:-Nexus 7,5.0.2 你好 我使用下面的代码从android.webkit.webview获取
问题内容: 也许我完全丢失了一些东西,但是我有一个本地运行的服务器,并且 没有 将Angular配置为对$ http请求使用CORS。当我向localhost:发出HTTP请求时,我看到Chrome首先创建了OPTIONS请求。 因为我需要支持IE 8,并且AngularJS绝对不能在CORS中使用,所以我需要删除CORS。 我尝试直接设置 不 使用包装器的方法,但没有任何效果。也许这与https
这是一个禁用的测试案例: import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; @Disabled class DisabledClassDemo { @Test void testWillBeSkipped() { } } 这是一个带有禁用测试方法的测试案例: import
问题内容: 单击后,我想在iOS上禁用按钮()。我是开发iOS的新手,但我认为目标上的等效代码-C是这样的: 但是我不能迅速做到这一点。 问题答案: Swift中的布尔值是。 应该做。 这是的属性的Swift文档。
Apache 2.4.37安装在Centos7上,没有安装lets加密应用程序,httpd.conf文件中没有虚拟主机。 下面是ssl设置的一部分。conf文件。 也尝试了下面的条目,但不起作用。SSLProtocol TLSv1。2. nmap仅显示tls1。2已启用,但ssllab和https://www.cdn77.com/tls-test两者都显示tls 1.0和1.1已启用。 有人能帮我