我正在使用cordova inappbrowser Plugin。
当我在弹出窗口下面的任何移动浏览器中打开URL但是当我尝试通过inappbrowser打开相同的URL时,我没有获得此身份验证弹出窗口。它直接显示401认证错误。
为什么这种行为发生了变化?有什么我必须提供以获得像浏览器一样的行为吗?
或者我可以直接传递用户名和密码吗?那么如何实现基本身份验证呢?
我也尝试过表单提交方式。
<form name="frm" id="frm" method="POST" action="http://sample.xyz/test">
<input type="hidden" name="username" id="username" value="abc" />
<input type="hidden" name="password" id="password" value="xyz" />
</form>
此外,我也尝试了以下谷歌搜索。
window.open("http://abc:xyz@sample.xyz/test");
帮助我。
答案 0 :(得分:-1)
这不是任何页面的登录表单。它是一种htaccess(或类似的)身份验证。
因此,您无法通过登录表单提供凭据。
就此进行了讨论您尝试的方法
window.open("http://'abc':'xyz'@sample.xyz/test");
将其更改为
window.open("http://abc:xyz@sample.xyz/");
或
window.open("http://abc:xyz@sample.xyz/test");
这将验证您访问该网站。
答案 1 :(得分:-1)
默认情况下,InAppBrowser仅使用url。
如果你的链接需要通过POST发送参数,你应该试试这个approche:
var postParams = {
"param1": param,
"param2": param2
};
var pageContent = '<html><head></head><body><form id="loginForm" action="' + siteAddress + '" method="post">' +
'<input type="hidden" name="postParams" value="' + encodeURI(JSON.stringify(postParams)) + '">' +
'</form> <script type="text/javascript">document.getElementById("loginForm").submit();</script></body></html>';
var pageContentUrl = 'data:text/html;base64,' + btoa(pageContent);
ref = window.open(pageContentUrl, '_blank', 'location=no,zoom=no,hidden=yes,disallowoverscroll=no,toolbar=no,clearcache=no,clearsessioncache=no');