Я создаю простое действие контроллера MVC, которое принимает некоторые данные json, а затем возвращает значение true или false.
[AllowCrossSiteJson]
public JsonResult AddPerson(Person person)
{
//do stuff with person object
return Json(true);
}
Я называю это из javascript:
function saveData(person) {
var json = $.toJSON(person); //converts person object to json
$.ajax({
url: "http://somedomain.com/Ajax/AddPerson",
type: 'POST',
dataType: 'json',
data: json,
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert("ok");
}
});
}
Все работает, пока я нахожусь в одном домене, но как только я звоню из другого домена, я сталкиваюсь с проблемами.
На контроллере установлен фильтр действий «AllowCrosSiteJson», устанавливающий для заголовка «Access-Control-Allow-Origin» значение «*», позволяющее любому источнику доступа к действию контроллера.
public class AllowCrossSiteJsonAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
filterContext.RequestContext.HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
base.OnActionExecuting(filterContext);
}
}
Однако - Затем я получаю эту ошибку в firebug при вызове по доменам:
OPTIONS http://somedomain.com/Ajax/AddPerson?packageId=3 500 (Внутренняя ошибка сервера) Не удается загрузить http://somedomain.com/Ajax/AddPerson . Поле Content-Type заголовка запроса запрещено в Access-Control-Allow-Headers.
Что здесь плохого?
Я часами искал возможные решения, и это, кажется, связано с jquery с помощью OPTIONS (не POST, как я ожидал).
Если это действительно проблема, как я могу исправить это?
-121--1535172-
У меня есть такая база данных:
custNum date purchase dayOfWeek
333 2001-01-01 23.23 1
333 2001-03-04 34.56 5
345 2008-02-02 22.55 3
345 2008-04-05 12.35 6
... ... ... ...
Я пытаюсь получить режим (наиболее часто встречающееся значение) для столбца dayOfWeek для каждого клиента. В основном, это будет день недели, когда каждый клиент делает больше всего магазинов. Например:
custNum max(count(dayofweek(date)))
333 5
345 3
356 2
388 7
... ...
Любая помощь была бы большой благодарностью.