我正在使用示例Node.js Zoo Chat server在端口 2300 运行并且 只有其 index.html 客户端的 longPoll 功能才能在我的 ASP.NET MVC 3 View 页面之一中显示一些广播信息,如下所示:
客户端页面脚本:
$(document).ready(function () {
longPoll();
});
function longPoll(data) {
if (data && data.messages) {
for (var i = 0; i < data.messages.length; i++) {
var message = data.messages[i];
$('<p><b>' + message.nickname + ':</b> <span>' + message.text + '</span></p>').hide().prependTo('#messages').slideDown();
}
}
$.ajax({
cache: false,
type: "GET",
url: "http://localhost:2300/recv",
success: function (data) {
//alert(data);
longPoll(data);
},
failure: function (err) {
alert(err);
}
});
}
</script>
<h1>Live Feed</h1>
<div id="messages"></div>
不同之处在于我不会从客户端页面上的表单发布消息;相反,它是我的 MVC web 应用程序(在端口 3000 运行),它通过 WebRequest 定期向监听 Node.js 服务器发送 POST 请求。我在 server.js 上很好地收到了这些 POST 请求,但是客户端上的 ajax GET 调用在 firebug 上是红色的,并且似乎不起作用。我想知道为什么?
最佳答案
由于不是同源,为了能够发送ajax请求,域和端口必须相同。
关于node.js - 建立在不同端口上运行的 Node.js 服务器和 ASP.NET MVC 3 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754791/