Intel XDK WP 8 upport for XMLHttpRequest does not work properly for cross-domain requests

Intel XDK WP 8 upport for XMLHttpRequest does not work properly for cross-domain requests

The XDK's WP 8 Beta support has an issue with XMLHttpRequests to an external domain. This problem only occurs on the WP 8 platform. The XMLHTTPRequests properly on the Android and iPhone platforms.

The response I receive on WP 8 is an error response and the status code is 0 which doesn't make sense.

The example code is shown below.

Please note that the API URL has been intentionally set to a dummy URL to protect the company's server API. If you're with Intel, please feel free to contact me confidentially for the actual URL I used to test out the XDK's XMLHttpRequest support.

Thanks in advance.

<!DOCTYPE html>
<html class="ui-mobile-rendering">
<head>
    <title></title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv='Content-Type' content='Type=text/html; charset=utf-8'>

    <style>
        html {
            background-color: #ffffff;
        }

        #console {
            position: absolute;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            margin: 0;
            padding: 0;
            overflow-x: hidden;
            overflow-y: auto;
        }

        #console p {
            margin: 0;
            padding: 0;
        }
    </style>

    <!-- AppMobi-specific scripts -->
    <script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/appmobi.js"></script>
    <script type="text/javascript" charset="utf-8" src="http://localhost:58888/_appMobi/xhr.js"></script>
    <script type="text/javascript">
        var consoleDiv;

        function writeConsole( message ) {
            var messageElem;

            messageElem             = document.createElement( "p" );
            messageElem.innerText   = message;
            consoleDiv.appendChild( messageElem );
        }

        function start() {
            consoleDiv = document.getElementById( "console" );

            var xhr = new XMLHttpRequest();
            xhr.onreadystatechange = function(){
                if(xhr.readyState == 4){
                    writeConsole( "FETCH DONE ---" );
                    writeConsole( "Text: " + xhr.responseText );
                    writeConsole( "Headers:\n" + xhr.getAllResponseHeaders() );
                    writeConsole( "Status: " + xhr.status );
                    writeConsole( "Status text: " + xhr.statusText );
                }
            };
            xhr.onerror = function( event ) {
                writeConsole( "AJAX error: " + JSON.stringify(event, null, 2) );
            };
            xhr.ontimeout = function( event ) {
                writeConsole( "AJAX timeout: " + JSON.stringify(event, null, 2) );
            };
            xhr.open( "GET", "http://thelocation.com/", true );
            xhr.send();
        }
    </script>
</head>

<body onload="start()">
<div id="console"></div>
</body>

</html>

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Ryan F.'s picture

Please try again.  The build system has been updated with a fix for this.

Thanks, Ryan. I've confirmed that this issue has been fixed.

I've also posted about the fix in the other Intel XDK forum.

JudLup Luna's picture

Hi, you can use websockets for make a interactive page

JudLup Luna
JudLup Luna's picture

Hi, you can use websockets for make a interactive page

JudLup Luna

Login to leave a comment.