Контроллер MVC Json возвращает полную страницу при вызове из другого проекта в другом поддомене? - PullRequest
1 голос
/ 20 сентября 2011

Мой MVC-проект выполняется в поддомене, скажем, json.mysite.com, и мой контроллер выглядит примерно так:

/// assume this method is in some controller - MyJsonController.cs
public JsonResult GetStoreDetails(int storeId)
{
    .....
    return Json(MyStatisticsObject, JsonRequestBehavior.AllowGet);
}

Это прекрасно работает, только до тех пор, пока я загружаюлюбая страница из того же субдомена json.mysite.local.Все, что мне нужно сделать, это

    $.ajax({
    url: "/MyJson/GetStoreDetails?storeId=18"
    success: function (result) {
    ...
    }
});

скажем, в firebug, и я вижу, что json прекрасно вернулся.

Теперь я возвращаюсь к своему основному проекту asp.net, который работает на разныхсубдомен (технически это совершенно разные проекты), я делаю это, чтобы захватить json из моего домена json

try
{
    string jsonUrl = string.format("http://json.mysite.local/MyJson/GetStoreDetails?storeId={0}", SelectedStore.Id);

    WebRequest requestObj = WebRequest.Create(jsonUrl);
    requestObj.Method = "GET"; //this did not do anything
    WebResponse responseObj = requestObj.GetResponse();

    string json;
    using (StreamReader objStreamReader = new StreamReader(responseObj.GetResponseStream()))
    {
        json = objStreamReader.ReadToEnd();
    }

    JavaScriptSerializer jss = new JavaScriptSerializer();
    DataTransfer.MyStoreStats storeStats = jss.Deserialize<DataTransfer.MyStoreStats>(json); //this line ALWAYS throws exception
}
catch (Exception ex)
{
    Log.Fatal("storeId: " + SelectedStore.Id, ex);
    base.RaiseError(ErrorCode._500);
}

Я всегда получаю исключение.Если я проверяю строку json, у меня всегда есть полный документ лотоса от <html> до закрывающего тега, и у меня даже нет представления об этом контроллере.

Я пробовал несколько вещей, таких как изменение типа записи и т. Д., Но, похоже, ничего не работает.Что нужно сделать, если мне нужен только мой json, пожалуйста?

Большое спасибо.

1 Ответ

1 голос
/ 20 сентября 2011

Ознакомьтесь с этой статьей , чтобы узнать, как вызвать удаленную службу с помощью JSON.

...