通过 SapUI5 和 Cordova 访问 html 基本受保护图像
Access to html basic protected image via SapUI5 & Cordova
我正在尝试访问受简单 http 基本身份验证机制保护的图像。这个例子在使用我的浏览器时工作正常
...
var mImage = sap.m.Image("Im1");
mImage.setSrc("http://user:password@192.168.0.100/image.jpg");
...
var page = new sap.m.Page({
title: "Image",
content: mImage
}
然而,当我将它包装在 Cordova 容器中时 (Android),这种附加 user+pw 的简单方法似乎不起作用。网络服务器响应 401 错误,我的应用程序未发送身份验证 header。
我尝试的下一步是在尝试访问时间图像之前发送 XmlHttRequest URL:
var xhr =new XMLHttpRequest();
xhr.open("GET", "http://192.168.0.100/image.jpg", true, "user", "password");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
alert(xhr.responseText); //returns the image in text form i.e. authentication works fine
mImage.setSrc("http://192.168.0.100/image.jpg") //returns a 401
}
};
xhr.send(null);
又一次失败。我的印象是,一旦我通过身份验证,我就会得到 session。但显然 xhr session 和 sap.m.image session 似乎是分开的。
关于如何解决这个问题的任何想法
我发现这似乎是 Android Web 视图中的错误。它固定在 Android 5- 这对我来说很好,我上面的例子工作正常
我正在尝试访问受简单 http 基本身份验证机制保护的图像。这个例子在使用我的浏览器时工作正常
...
var mImage = sap.m.Image("Im1");
mImage.setSrc("http://user:password@192.168.0.100/image.jpg");
...
var page = new sap.m.Page({
title: "Image",
content: mImage
}
然而,当我将它包装在 Cordova 容器中时 (Android),这种附加 user+pw 的简单方法似乎不起作用。网络服务器响应 401 错误,我的应用程序未发送身份验证 header。
我尝试的下一步是在尝试访问时间图像之前发送 XmlHttRequest URL:
var xhr =new XMLHttpRequest();
xhr.open("GET", "http://192.168.0.100/image.jpg", true, "user", "password");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
alert(xhr.responseText); //returns the image in text form i.e. authentication works fine
mImage.setSrc("http://192.168.0.100/image.jpg") //returns a 401
}
};
xhr.send(null);
又一次失败。我的印象是,一旦我通过身份验证,我就会得到 session。但显然 xhr session 和 sap.m.image session 似乎是分开的。
关于如何解决这个问题的任何想法
我发现这似乎是 Android Web 视图中的错误。它固定在 Android 5- 这对我来说很好,我上面的例子工作正常