cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Grebnov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CB-5203) Using XmlHTTPRequest.open on WP8 raises a TypeError
Date Wed, 13 Nov 2013 10:45:22 GMT

    [ https://issues.apache.org/jira/browse/CB-5203?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13821174#comment-13821174
] 

Sergey Grebnov commented on CB-5203:
------------------------------------

Weinre fails in the following method  when trying to call xhr.addEventListener. Cordova redefines
native XMLHttpRequest object to enable access to local files, but unfortunately does not provide
addEventListener method.
https://github.com/apache/cordova-weinre/blob/master/weinre.web/modules/weinre/target/NetworkRequest.coffee#L103
            return HookSites.XMLHttpRequest_open.addHooks({
                before: function(receiver, args) {
                    var xhr;
                    xhr = receiver;
                    IDGenerator.getId(xhr);
                    xhr.__weinre_method = args[0];
                    xhr.__weinre_url = args[1];
                    var res = xhr.addEventListener("readystatechange", getXhrEventHandler(xhr),
false);
                    return res;
                }
            });

So, 
1. I'll add support of add/removeEventListener to Windows Phone8 XHRHelper
2. Patrick, do you want me to add additional check whether addEventListener method exists
to Weinre? If not, then try directly do xhr.readystatechange = getXhrEventHandler(xhr)

> Using XmlHTTPRequest.open on WP8 raises a TypeError
> ---------------------------------------------------
>
>                 Key: CB-5203
>                 URL: https://issues.apache.org/jira/browse/CB-5203
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: weinre
>    Affects Versions: 3.1.0
>         Environment: Windows Phone 7 + 8
> Windows 8, MS Visual Studio Express 2012 for Windows Phone version 11.0.60610.01 Update
3. .NET version 4.5.50709. Weinre 2.0.0-pre-HH0SN197
>            Reporter: Björn Andersson
>            Assignee: Sergey Grebnov
>
> Using the {{cordova-app-hello-world}} code on a WP8 device, connected to the device through
weinre, trying to use XMLHTTPRequest like this:
> {code:language=javascript}
> var xhr = new XMLHttpRequest();
> xhr.open('GET', 'js/index.js', true);
> xhr.send();
> console.log(xhr.responseText);
> {code}
> An error is raised at {{xhr.open}}: {{TypeError: Object doesn't support property or method
'addEventListener'}}
> The same code on iOS runs through and shows me the content of {{index.js}}.
> Changing the call to:
> {code:javascript}
> var xhr = new XMLHttpRequest();
> xhr._url = 'js/index.js';
> xhr.send();
> console.log(xhr.responseText);
> {code}
> Returns the expected result.
> I also noticed that {{XMLHttpRequest.prototype.open}} does not match the code in {{cordovalib\XHRHelper.cs}}:
> {code:title=XMLHttpRequest.prototype.open|javascript}
> function() {
> var result;
> callBeforeHooks(hookSite, this, arguments);
> try {
> result = func.apply(this, arguments);
> } catch (e) {
> callExceptHooks(hookSite, this, arguments, e);
> throw e;
> } finally {
> callAfterHooks(hookSite, this, arguments, result);
> }
> return result;
> }
> {code}
> GitHub repository with the code I used: https://github.com/gaqzi/cordova-wp8-xhr-test



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Mime
View raw message