Express JS远程访问

时间:2016-03-13 01:14:24

标签: node.js express backbone.js

我使用BackboneJS,NodeJS和ExpressJS设置了应用程序。我无法从我的应用程序访问我的路线。但我可以直接在浏览器中访问我的路线并查看输出。

例如,这有效:

http://test.myserver.com:3000/employees/1  (其中test.myserver.com是我可在外部访问的服务器地址)

我的快递服务器声明如下:

var express = require('express'),
    employee = require('./routes/employees');

var app = express();

app.get('/employees/:id', employee.findById);

app.listen(3000);

我的问题是,当我尝试通过我的应用程序访问路由时,我收到了访问错误。

http://test.myserver.com/pages/index.html#employees/1

GET http://localhost:3000/employees/1?callback=jQuery19107984810129273683_1457829695460&_=1457829695461 net::ERR_CONNECTION_REFUSED

如何使用Express在我的应用程序中访问我的路线?

1 个答案:

答案 0 :(得分:0)

我看到了一个问题。您说您正在加载网页:

http://test.myserver.com/pages/index.html#employees/1

但是,URL请求适用于:

http://localhost:3000/employees/1?callback=jQuery19107984810129273683_1457829695460&_=1457829695461

这些是不同的域和不同的端口。在我看来,jQuery看到这是一个跨源请求,并试图将其转换为JSONP请求,但您的服务器不支持JSONP。

您可能需要做的就是让网页中的Javascript请求加载网页的SAME来源(相同的域,相同的端口)。然后,它不会是交叉原始请求,它应该工作(如果没有其他错误)。

请向您显示提出此请求的网页中的相关Javascript,以便我们更具体地告知如何解决此问题。

此外,如果您期望您的node.js服务器为您的网页提供服务,那么您将需要node.js代码来执行此操作(您不会显示任何代码),因为node.js默认情况下不提供任何页面(与其他一些Web服务器不同)。