You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Jan Piotrowski (janpio) (JIRA)" <ji...@apache.org> on 2019/07/05 13:05:00 UTC

[jira] [Closed] (CB-9285) Cordova application freezes if uploading a file through http proxy with ntlm authentication

     [ https://issues.apache.org/jira/browse/CB-9285?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jan Piotrowski (janpio) closed CB-9285.
---------------------------------------
    Resolution: Auto Closed
      Assignee:     (was: Jesse MacFadyen)

If this is still a problem, please recreate the issue over at [https://github.com/apache/cordova-windows.] Thanks.
 

> Cordova application freezes if uploading a file through http proxy with ntlm authentication
> -------------------------------------------------------------------------------------------
>
>                 Key: CB-9285
>                 URL: https://issues.apache.org/jira/browse/CB-9285
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-windows
>    Affects Versions: 3.8.0, 4.0.0
>         Environment: windows8.1 , http proxy is squid with ntlm authentication
>            Reporter: shim iya
>            Priority: Major
>              Labels: newbie
>
> When uploading a file with Cordova Application through a http proxy with ntlm authentication, Cordova application freezes.
> My machine is surface pro 3.
> "uploading a file" means , I created a FormData and add blob to the formdata like this:
> {code}
>         <script type="text/javascript">
>             document.getElementById('thisfile').addEventListener('change', function () {
>                 var imageFile = document.getElementById('thisfile').files[0];
>                 var reader = new FileReader();
>                 if (imageFile) {
>                     reader.readAsDataURL(imageFile);
>                     reader.onload = function () {
>                         window.image = new Image();
>                         window.image.src = reader.result;
>                     };
>                 }
>             });
>             document.getElementById('sendbutton').addEventListener('click', function () {
>                 var formdata = new FormData();
>                 var d = window.atob(window.image.src.split(',')[1]);
>                 var buff = new ArrayBuffer(d.length);
>                 var arr = new Uint8Array(buff);
>                 var i, dataLen;
>                 for (i = 0, dataLen = d.length; i < dataLen; i++) {
>                     arr[i] = d.charCodeAt(i);
>                 }
>                 var blob = new Blob([arr], { type: 'image/jpg' });
>                 formdata.append("image", blob, "foo.jpg");
>                 var option = {
>                     url: 'http://someserver:8080/SomeApplication/service/SomeFunction',
>                     data: formdata
>                 };
>                 var xmlHttpRequest = new XMLHttpRequest();
>                 xmlHttpRequest.onreadystatechange = function () {
>                     if (this.readyState == 4
>                      && this.status == 200) {
>                         navigator.notification.alert(this.responseText);
>                     } else {
>                         navigator.notification.alert('Access Failed.');
>                     }
>                 }
>                 xmlHttpRequest.open('POST', option.url, true);
>                 xmlHttpRequest.send(option.data);
>             });
>         </script>
>         
> {code}
> In the first place, to communicate with ntlm authentication proxy, request is threw 3 times.
> First time, request is thrown with no request header 'proxy-authorization', then the server responses 407.
> Second time,request is thrown with request header 'proxy-authorization', and this is authentication request, then the server responses 407, but this is called "challange".
> Third time, challange is solved, request is thrown with complete request header 'proxy-authorization' and succeed the authentication.
> But...actually,
> the second time of the request and response goes well, but the third time of the request is not thrown.
> Then,application freezes.Even doing anything, there is no reaction.
> All I can do is kill the process using TaskManager.
> And this go well unless I add a file to the formdata, so I don't think my environment is corrupt.
> Incidentally,If I look at the same script in IE11, this code will succeed.(Neatly requests are thrown three times, all is succeeded.)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org