我一直在玩node.js,然后遇到了express框架。当使用不同的端口时,我似乎无法使其工作。node.js,express和不同的端口
我有我的阿贾克斯http://localhost:8888这是我在我的Mac上运行的MAMP服务器。
$.ajax({
url: "http://localhost:1337/",
type: "GET",
dataType: "json",
data: { },
contentType: "application/json",
cache: false,
timeout: 5000,
success: function(data) {
alert(data);
},
error: function(jqXHR, textStatus, errorThrown) {
alert('error ' + textStatus + " " + errorThrown);
}
});
正如你所看到的,我的node.js服务器正在运行在http://localhost:1337/上。结果没有任何东西被返回,并且抛出一个错误。
有没有办法解决这个问题?
感谢
本
我明白你的问题的方式,你正在从localhost:8888加载一个网页,然后做一个$ .ajax调用localhost:1337。那是对的吗?如果是这样,那么你正在实施相同的原产地政策。 – Barend 2012-04-22 08:13:12
这是正确的。那么解决这个问题的唯一方法就是从node.js服务器运行我的网站,使其具有相同的端口?但是如果我在我的网站上托管的端口80上实现了这个动作,并且我想连接到node.js服务器以进行搜索等请求呢?大多数人如何做到这一点? – 2012-04-22 08:16:34
首选方法(恕我直言)是使用反向代理,使所有请求都转到同一主机/端口,并在幕后重新路由它们。一个不常见的解决方法是使用JSONP,但由于其安全性影响,我个人不喜欢这种方法。 – Barend 2012-04-22 08:18:24