在facebook iframe应用程序中使用jquery - GET与POST

时间:2011-05-03 14:21:40

标签: jquery asp.net-mvc facebook iframe facebook-c#-sdk

我想知道在facebook iframe应用程序中使用jquery时需要考虑什么。

我试图让我的网格使用分页而不是一直重新加载整个ASP.NET MVC页面。

在facebook iframe应用程序中使用jquery时是否需要执行任何特殊操作?

编辑:我已经在使用像datepicker这样的jquery-ui组件了。但是,只要我想要在Html元素中插入Controller动作的结果,我就会挣扎。

EDIT2:似乎使用POST协议的jquery函数工作正常,但在使用GET协议时却没有。

示例电话:

使用:

       $("#element").live("click", function () {
   $.ajax(  
    {  
        type: "POST",  
        url: "<%=Url.Action("Action","Controller") %>",  
          parameters: {  page: 2  },
        success: function(result) {  
            $("#element2").html(result); 
        }  
    });  

       return false;
   });

不起作用:

       $("#element").live("click", function () {
   $.ajax(  
    {  
        type: "GET",  
        url: "<%=Url.Action("Action","Controller") %>",  
          parameters: {  page: 2  },
        success: function(result) {  
            $("#element2").html(result); 
        }  
    });  

       return false;
   });

3 个答案:

答案 0 :(得分:3)

  

我已经在使用jquery-ui了   像datepicker这样的组件可以工作   精细。但是只要我想要   插入Controller的结果   在Html元素中的行动我很难。

您可以使用jQuery函数getJSON将控制器操作的结果插入到HTML元素中,有关详细信息,请参阅this reference document

您的控制器操作应返回JsonResult个对象。

例如,这个jQuery代码在Controller(myController)上调用Action(myAction),并使用返回对象的属性更新HTML元素:

$.getJSON('MyWebsite/MyController/MyAction', SomeParameters, function (result) {
    if (result!=null)
    {
        $('#MyElement').html(result.Value1);
    })

您的控制器操作应该返回JsonResult这样的对象:

public JsonResult MyAction()
{
    return Json(new SomeObject
        { Parameter1 = Value1}, JsonRequestBehavior.AllowGet);
}

希望这有帮助。

答案 1 :(得分:1)

不需要执行任何特殊操作:iframe的内容完全由您控制。您可以在iframe中加载所需的任何javascript文件,并对您的代码执行任何操作。我在Facebook iframe应用程序中广泛使用了jquery。需要注意的关键是iframe内容只是另一个网页。您可以在常规网页中执行任何操作(除非更改窗口大小:这很痛苦,但仍然可以通过Facebook SDK完成)。

如果您需要访问Facebook API,Facebook Javascript SDK是您的朋友,但在iframe中,您可以在常规网页上执行任何操作。

答案 2 :(得分:0)

我认为你不能。

出于安全原因,浏览器禁用两个iFrame(父/子)之间的javascript,如果它们不在同一个域中。因此,当facebook.com在iFrame中时,www.yourwebsite.com无法从www.facebook.com调用javascript函数(愚蠢的例子,但它可以帮助你说清楚)

我认为你很难接受呼叫服务