我是.Net开发人员和新的Node.js应用程序。我试图通过Node.js为我的ASP.NET MVC应用程序创建一个代理层,以执行跨域通信而不触及我的ASP.NET WebAPI的服务器级配置。在ASP.NET MVC中使用node.js查看
让我们从代码开始迅速了解我的问题,
我创建了一个单一的MVC应用程序保存在“MyApp的/ app.js”和ASP.NET MVC观点我节点,这将使一个AJAX调用我的节点文件。
<h2>This is an Index page</h2>
<script>
$(function() {
$.ajax({
url: "/sample",
success: function() {
alert('Done');
}
});
});
</script>
下面是我的web.config,
<handlers>
<!-- indicates that the app.js file is a node.js application to be handled by the iisnode module -->
<add name="iisnode" path="MyApp/app.js" verb="*" modules="iisnode" />
</handlers>
这里是我的app.js,
var express = require('express');
var app = express();
app.set('port', process.env.PORT || 3000);//When I hardcode to Port:80 I'm getting "Error: listen EACCES 0.0.0.0:80"
app.listen(app.get('port'), function() {
console.log('Express up and listening on port' + app.get('port'));
});
app.get('/Sample', function (req, res) {
res.send('Hello World Sample!');
});
当我尝试打开我的看法,AJAX调用与失败“ 404错误“。我试图运行我的节点应用程序在端口:80,但它会引发错误“错误:听EACCES 0.0.0.0:80”。为什么我不能在同一端口上运行我的Node应用程序和ASP.NET MVC视图?
感谢您的答复...但如果我使用不同IP /端口它会抛出跨域侵犯权利?我的意思是“没有访问控制允许orgin标题”。基本上我想创建一个代理层来摆脱跨域违规。 –
@Karthick Jayaraman将此添加到您的代码:res.header('Access-Control-Allow-Origin','*'); ('Access-Control-Allow-Methods','GET,PUT,POST,DELETE,OPTIONS'); ('Access-Control-Allow-Headers','Content-Type,Authorization,Content-Length,X-Requested-With'); – Zerubbabel