Your value for `channelUrl` is nominally correct.  If I set up my XAMPP server, via `httpd.conf` to use port 8000, then this HTML page works perfectly fine for me:

    <!DOCTYPE html>
    <html><head>
        <title>StackApps SDK auth test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head><body>

    <p>See the console.</p>

    <script type='text/javascript' src='https://api.stackexchange.com/js/2.0/all.js'></script>
    <script type="text/javascript">
        SE.init ( {
            clientId:   1543,
            key:        '{USE YOUR OWN KEY}',
            channelUrl: 'http://localhost:8000/test/blank.htm',
            complete:   function (data) { console.log ("Init: ", data); }
        } );
    </script>
    </body></html>

-- where `blank.htm` is a completely empty file and I access the page with this URL: `http://localhost:8000/test/StckApps_SDK_auth_test.htm`

The console shows:

    Init: Object { version="11633"}

So, **something you are not showing us is the problem**.  (Redirects? Using `file://` protocol?  Typos? Other?)


----------
However, there is an apparent bug in the SDK.  It apparently **does not account for ports when you try to do the next step (`SE.authenticate()`).**

Consider this page:

    <!DOCTYPE html>
    <html><head>
        <title>StackApps SDK auth test</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head><body>

    <p>See the console.</p>
    <p><button id="authBtn">Get authorized.</button></p>

    <script type='text/javascript' src='https://api.stackexchange.com/js/2.0/all.js'></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready (jQueryMain);

        function jQueryMain () {
            $("#authBtn").click ( function () {
                SE.authenticate ( {
                    success:    function (data) { console.log ("Auth success: ", data); },
                    error:      function (data) { console.log ("Auth error: ", data); },
                    scope:      ['read_inbox'],
                    networkUsers: true
                } );
            } );
        }
    </script>
    <script type="text/javascript">
        SE.init ( {
            clientId:   1543,
            key:        '{USE YOUR OWN KEY}',
            channelUrl: 'http://localhost:8000/test/blank.htm',
            complete:   function (data) { console.log ("Init: ", data); }
        } );
    </script>
    </body></html>

When I click on the <kbd>Get authorized.</kbd> button, a popup appears with a valid access token in the URL.  But this information never gets back to the calling page!  
The Firefox Error Console reports:

> Security Error: Content at `http://localhost/` may not load data from `http://localhost:8000/test/StckApps_SDK_auth_test.htm`.

Note the port mismatch in what the SDK tries to use?  **This looks like a bug.**

If I change the page, edit my [app settings][1], and reset XAMPP to use `localhost` without any port specified (except 80 in httpd.conf), then the page works perfectly and I get a response like:

> Auth success: Object { accessToken="72L6...2W6cH(kQ))", expirationDate=Date, networkUsers=[23]}

in the Firebug console.


----------
So, even if you get the first part working, you do not want to use a non-default port with the SDK, anyway, until the SDK bug is fixed.

  [1]: http://stackapps.com/apps/oauth/