2012-01-06 61 views
1

我使用运行在端口2300和 的示例Node.js Zoo Chat server,它的index.html客户端只有longPoll功能才能在我的一个ASP中显示一些广播信息.NET MVC 3视图页面如下:建立在不同端口上运行的Node.js服务器和ASP.NET MVC 3客户端

客户端页面脚本:

$(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 webapp(在端口3000上运行),它周期性地通过WebRequest向侦听的Node.js服务器发送POST请求。我在server.js上得到了很好的POST请求,但客户端上的ajax GET调用在firebug上是红色的,似乎没有工作。我想知道为什么?

回答

1

由于它的来源不同,为了能够发送ajax请求,域和端口必须相同。

+0

哦。那么我怎样才能在这个客户端页面上捕获server.js消息呢? – zee 2012-01-06 07:47:29

+0

您可以从节点服务器获取asp中的数据,然后访问它。 – Headshota 2012-01-06 08:01:40

+0

@zee检查这个答案,如果它是帮助 – 2012-12-21 16:58:43

相关问题