Facebook C# SDK CanvasAction приводит к "Ошибка HTTP 405.0 - Метод не разрешен"
В моем приложении Facebook я использую CanvasAction так:
<div id="my-button" onclick="location.href='@Url.CanvasAction("Index", "Facebook")'">
который должен вызвать метод Index в FacebookController:
[CanvasAuthorize(Permissions = ExtendedPermissions)]
public ActionResult Index()
{
.....
}
В настоящее время приложение настроено так, что хост является localhost. Раньше это работало, но неожиданно получался ответ "Ошибка HTTP 405.0 - Метод не разрешен". Я изменил свое приложение так, чтобы оно, насколько я вижу, идентично образцу приложения "ASP.NET MVC3 Canvas без Facebook JavaScript", включенного в FB C# SDK, который работает.
Это работает, хотя, если я добавлю "Индекс" по адресу: http://apps.facebook.com/myapp/Facebook/Index/
2 ответа
Переместил код в методе действия Index в новый метод действия и обновил первый параметр в вызове CanvasAction соответствующим образом, и теперь он работает. Итак, вместо этого:
<div id="my-button" onclick="location.href='@Url.CanvasAction("Index", "Facebook")'">
а также
[CanvasAuthorize(Permissions = ExtendedPermissions)]
public ActionResult Index()
{
.....
return View();
}
этот:
<div id="my-button" onclick="location.href='@Url.CanvasAction("PleaseWork", "Facebook")'">
а также
[CanvasAuthorize(Permissions = ExtendedPermissions)]
public ActionResult PleaseWork()
{
.....
return View("Index");
}
Я действительно понятия не имею, почему это не работает с методом Index.
Звучит как странный запрос, но проверьте, правильно ли работает ваша HTTPS-версия вашего сайта. Я видел 405-е, когда что-то не так с сертификатом SSL.