Развертывание MVC3 REST - PullRequest
       2

Развертывание MVC3 REST

3 голосов
/ 14 мая 2011

Я создал базовый API MVC REST, чтобы просто получить одного человека из источника данных. Все это работает локально, но не при развертывании его на сервере.

public JsonResult Get(int? id)
{
     if (id != null)
     {
           Person p = personBl.Get((int)id);
           return Json(p, JsonRequestBehavior.AllowGet);
     }

     return Json("");
}

Мой вызов jquery выглядит следующим образом:

$.ajax({
            type: 'GET',
            url: 'http://localhost:50708/Persons/Get/',
            data: { id: 20 },
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                alert(data.Name);
            }
        });

Когда я развертываю его на своем сервере Windows 2003 и вызываю функцию Get, он всегда равен 404 (очевидно, что View не присоединен, поскольку я просто хочу json).

Я использую вызов jsonp, поскольку сервер находится в другом домене.

$.ajax({
            type: 'GET',
            url: 'http://192.168.1.187:1500/Persons/Get/',
            data: { id: 20 },
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp",
            jsonpCallback: 'jsonpCallback'
        });

function jsonpCallback(data) {
    alert('callback');
}

Есть идеи, почему вышесказанное не работает?

Ответы [ 2 ]

2 голосов
/ 14 мая 2011

Я не понимаю, как вы используете JSONP.Ваш сервер по-прежнему возвращает простой JSON:

return Json(p, JsonRequestBehavior.AllowGet);

, который будет отправлен по проводам следующим образом:

{ firstName: 'John', lastName: 'Smith' }

Ответ JSONP будет выглядеть следующим образом:

callbackname({ firstName: 'John', lastName: 'Smith' })

Недостаточно только проинформировать клиента о jsonp =>, который необходим серверу для поддержки.

Вы можете взглянуть на следующую запись в блоге и использовать JsonpResult показано на сервере.

0 голосов
/ 14 мая 2011

Ваш развернутый сайт настроен на использование порта 1500?Это в виртуальном каталоге?Что-то не так с http://192.168.1.187:1500/Persons/Get/ Я бы догадался.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...