You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Sergey Grebnov (JIRA)" <ji...@apache.org> on 2013/11/12 12:21:21 UTC

[jira] [Comment Edited] (CB-5203) Using XmlHTTPRequest.open on WP8 raises a TypeError

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

Sergey Grebnov edited comment on CB-5203 at 11/12/13 11:21 AM:
---------------------------------------------------------------

With Weinre connected - I see exactly the same behavior, custom XHR logic is not called at all, same js code called inside index.js file fails with the same error. Continue investigating...
W/o Weinre - everything works as expected. Btw, when you do open you specify async = true but handles xhr.responseText right after the send() call. So it must be corrected to
xhr.open('GET', 'js/index.js', false);
OR
var xhr = new XMLHttpRequest();
xhr.open('GET', 'js/index.js', true);
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        console.log(xhr.responseText);
    }
}
xhr.send();


was (Author: sgrebnov):
With Weinre connected - I see exactly the same behavior, custom XHR logic is not called at all, same js code called inside index.js file fails with the same error.
W/o Weinre - everything works as expected. Btw, when you do open you specify async = true but handles xhr.responseText right after the send() call. So it must be corrected to
xhr.open('GET', 'js/index.js', false);
OR
var xhr = new XMLHttpRequest();
xhr.open('GET', 'js/index.js', true);
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4) {
        console.log(xhr.responseText);
    }
}
xhr.send();

> 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)