我遇到了CORS通過Servicestack C#API的問題。我有一個通過在Microsoft服務器上運行的nodejs後端服務的angularjs應用程序。 NodeJS提供的角度項目很好,節點本身沒有聯繫我運行在不同域但在同一臺服務器上的ServiceStack服務的問題。當我需要進行Microsft Active Directory調用以獲取當前活動用戶時,會出現問題。爲了正確地進行這個調用,我必須從我的angularjs項目中調用ServiceStack服務。當我撥打這個電話時,我收到No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://domain1:8080' is therefore not allowed access
我有其他項目,我可以用同樣的電話撥打,但由於某種原因,我似乎無法完成此項工作。CORS問題與C#Servicestack和NodeJS
Angularjs調用(http://domain1:8080):
$http.get("http://domain2/dochelper/GetActiveAccount?format=json", { headers: { "siteprefix": prefix } })
.then(function successCallback(resp) {
console.log(resp.data);
}, function errorCallback(resp) {
});
Servicestack要求:
[Route("/GetActiveAccount")]
public class GetActiveAccount
{
public string Id { get; set; }
}
[Authenticate]
public AccountDTO Get(GetActiveAccount request)
{
AccountDTO obj = new AccountDTO();
var ses = this.GetSession() as AuthUserSession;
return obj;
}
Servicestack CORS配置:
Plugins.Add(new CorsFeature(allowOriginWhitelist: new[] { "http://winexpresstest:8080" },
allowedMethods: "GET, POST, PUT, DELETE, OPTIONS",
allowedHeaders: "Content-Type, Authorization, Session-Id, ViewPort-Width, ViewPort-PixelRatio, Accept-Ranges, Pragma, Cache-Control, If-Modified-Since, Access-Control-Allow-Origin, siteprefix",
allowCredentials: true));
Plugins.Add(new AuthFeature(() => new AuthUserSession(), new ServiceStack.Auth.IAuthProvider[] {
new AspNetWindowsAuthProvider(this) {
LoadUserAuthFilter = LoadUserAuthInfo,
AllowAllWindowsAuthUsers = true
},
}));
}
'allowedOrigins:「http:/ domain1:8080」'將此添加到CorsFeature中似乎沒有任何改變。 – Ohjay44
@ Ohjay44您需要使用接受'allowOriginWhitelist'的構造函數,並在我的示例中看到一組域。 – mythz
那是哪個構造函數?我目前使用ServiceStack構造函數。 – Ohjay44