我一直在玩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