2016-05-18 40 views
0

HI我有一個Angular Aplication從NodeJS中的REST API使用,都從IIS我正在使用IISNode。在請求的資源(AngularJS + NodeJs)上沒有'Access-Control-Allow-Origin'頭部在IISNOde中

我收到錯誤XMLHttpRequest cannot load http://181.49.53.186:8006/DynamicContent/form/list. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://web.procesosyservicios.info:3006' is therefore not allowed access.只有在開發版本的生產版本從來沒有得到錯誤。奇怪的是,沒有得到的錯誤總是例如與以前的方法,我得到的錯誤只有2 o 3次爲每10個電話。

我app.js文件中有如下配置:

router.use(function(req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Methods', 'GET, POST'); 
    res.header('Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Authorization'); 
    next(); 
}); 

替代我刪除之前線和我web.coonfig文件中像這樣定義一樣:

<httpProtocol> 
    <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Methods" value="GET,POST" /> 
     <add name="Access-Control-Allow-Headers" value="X-Requested-With,content-type,Authorization" /> 
    </customHeaders> 
</httpProtocol> 

但結果是有時只有同樣的工作。我不知道可能是什麼錯誤。

感謝您的幫助

SOLUTION

在我的情況的解決辦法是改變以下這configuration並添加此行我的web.config文件:與跨域

<httpProtocol> 
    <customHeaders> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Methods" value="GET,POST" /> 
     <add name="Access-Control-Allow-Headers" value="X-Requested-With,content-type,Authorization" /> 
    </customHeaders> 
</httpProtocol> 

回答

-1

問題Ajax請求對開發者來說相當普遍。

解決此問題的最佳方法是從服務器端向響應對象添加標頭。

下面是一個博客,可以很詳細地解釋這個。它還包含一些服務器端代碼。在C#中添加標題的方式是通過以下語句。

Response.AddHeader("Access-Control-Allow-Origin", "mydomain.com"); 
Response.ContentType = "application/json"; 

還可以包括*代替mydomain.com,但它違背了安全措施,做這樣的請求的阻塞的全部目的。

希望有所幫助。

感謝

帕拉斯

+0

嗨@pparas謝謝您的回答;抱歉,但我可以看到博客的鏈接。尊重我嘗試用兩種不同方法添加標題的解決方案。在我的app.js文件和web.config文件中的服務器中(使用的代碼可以檢查問題);但兩者都得到相同的錯誤。 – oriaj

相關問題