0
從POST響應中獲取標題好的,在繼續之前,這是在CORS情況下發生的。
服務器#1(http://localhost:33233)是我的服務(SOAP,WebAPI)託管的主要網站。我已經添加在Global.asax這些線支持CORS請求:
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin" , "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
// These headers are handling the "pre-flight" OPTIONS call sent by the browser.
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Accepts, Content-Type, Origin");
HttpContext.Current.Response.AddHeader("Access-Control-Max-Age", "1728000");
HttpContext.Current.Response.End();
}
}
另外,該服務器,當我收到一個請求,我設置在頭一個會話令牌上:
HttpContext.Current.Response.Headers.Set("X-SessionToken", "{...}");
服務器#2(http://localhost:41350/login)是我用AngularJS構建的移動網站,我稱之爲遠程服務。
在登錄過程中,我調用SingIn服務(SOAP)。我打斷點服務器端,我設置標題並返回響應;往返運行正常。
但是,當我從響應客戶端檢查標題時,我得到一個空值。
$http({
method: 'POST',
url: 'http://localhost:33233/ws/Authentication.asmx/SignIn',
data: {...}
}).success(function(data, status, header, config) {
var mySession = header('X-TokenSession');
}).error(function(data, status, header, config){
...
});
我檢查了Fiddler或Chrome DevTools,我可以看到網絡流量中的標頭值。
這是$ httpProvider問題嗎?