我是.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