我有一个带有子域设置的webapi域:
现在,API域通过ASP.Net成员身份访问登录用户的购物车数据,然后通过AJAX调用在主域(www.abc.com)上访问它
我能够访问api.abc.com中的asp.net成员资格数据,但是当我尝试在主站点上使用AJAX函数时,由于该原因,asp.net成员资格始终返回null。我无法访问当前登录用户的购物车详细信息。
我尝试更新以下内容,但没有成功:
这是我对api的AJAX调用,以提取购物车详细信息:
$.getJSON([API URL], function (data) {
if (data != null && data.length > 0)
$(".right-side-toggle span.badge").html(data.length);
else
$(".right-side-toggle span.badge").html("0");
});
任何人都可以提出问题,在进行AJAX调用时,成员资格返回NULL
已更新
public List<ShoppingCartData> GetShoppingCart()
{
Guid _guid = new Guid();
string whereClause = string.Empty;
MembershipUser user = Membership.GetUser();
if (user != null && !String.IsNullOrEmpty(user.UserName))
{
_guid = new Guid(user.ProviderUserKey.ToString());
whereClause = " sc.UserId = '" + user.ProviderUserKey.ToString() + "' ";
}
else if (HttpContext.Current.Request.Cookies[Common.SHOPPING_CART_COOKIE] != null)
{
_guid = new Guid(HttpContext.Current.Request.Cookies[Common.SHOPPING_CART_COOKIE].Value);
whereClause = " sc.CartId = '" + HttpContext.Current.Request.Cookies[Common.SHOPPING_CART_COOKIE].Value + "' ";
}
else
{
return null;
}
string query = "select scd.Id as ShoppingCartDetailsId, sc.CartId, p.ProductId, scd.Quantity, p.[Name], p.[Description], p.OurPrice, p.MaximumRetailPrice, pi.[Image], p.CurrencyId from dbo.ShoppingCart sc " +
"inner join dbo.ShoppingCartDetails scd " +
"on sc.CartId = scd.CartId " +
"inner join dbo.Product p " +
"on scd.ProductId = p.ProductId " +
"inner join dbo.ProductToImages pi " +
"on p.ProductId = pi.ProductId " +
"where " + whereClause + "" +
"and ISNULL(sc.IsCheckoutProcessed, 0) = 0";
return db.Database.SqlQuery<ShoppingCartData>(query).ToList();
}
上面的代码位于一个单独的程序集中,同时针对(API和主域(www.abc.com))