Since you doing a statechange using post you may need a RequestVerificationtoken. You can create it in your jquery or easier just to insert it straight into your html with @Html.AntiForgeryToken(). Then pass it into the ajax function, through headers.
$.ajax({
type: "post",
url: '@Url.Action("AddFavorite", "Product")',
headers: {"RequestVerificationToken": $('input:hidden[name="__RequestVerificationToken"]').val() },
data: { id: id },
}).done(function (msg) {
if (msg.status === 'added') {
$('#favarite-user').load(' #favarite-user')
}