difference between browser and script

I have my own node.js written in C. When I open the browser and browse to 192.168.0.150:8000/index and call the script:

 var socket = io.connect("/index");

socket.on('connect', function() {
    $('#onindex').addClass('connected');
});

every thing is OK. BUT: When I try to:

       var socket = new io.Socket('192.168.0.150', {port: 8000 }); 
       socket.connect("/index.html");

I get the following error on the Javascript console:

XMLHttpRequest cannot load 192.168.0.150/index.html:80/socket.io/xhr-polling//…. Origin null is not allowed by Access-Control-Allow-Origin.

This indicates to me that the server can't find it.

How can I fake the JS to think I'm browsing?

Let's break down your error message

XMLHttpRequest

The problem was with XMLHttpRequest (on the side running the script)

cannot load 192.168.0.150/index.html:80/socket.io/xhr-polling//….

it couldn't load the page

Origin null is not allowed by Access-Control-Allow-Origin.

because it is not allowed to by Access-Control-Allow-Origin settings preventing an origin of null.

You can read up about access control here on MDN. An origin of null can arise from a page located on a data URI or using the file: protocol. This is part of the same-origin policy which you can read about here. You may have to set up CORS on your server to get it to work.