2011-09-26 37 views
0

我想让jsonp调用与jquery和我的asp.net-mvc网站一起工作。 I found this article which i tried to copy,但我没有在我的回调得到一个断点:Jsonp结果不能在我的asp.net-mvc网站上工作

这里是我的jQuery代码:

  $.ajax({ 
       url: "http://www.mySite.com/MyController/Terms", 
       type: "GET", 
       dataType: "jsonp", 
       timeout: 10000, 
       jsonpCallback: "localJsonpCallback" 
      }); 

      function localJsonpCallback(json) { 
       var terms = json.HTMLText; 
       $("#term2").html(terms); 
      } 

这里是我的控制器代码:

public JsonpResult Terms() 
    { 
     var data = GetData(); 
     return this.Jsonp(data); 
    } 

其中JsonpResult这.Jsonpare defined as per this page

所以我可以“T似乎得到一个回调,但是当我打开Firebug的脚本部分,我看到列出的文件是在有关的URL,并具有:

Terms?callback=localJsonpCallback 

,当我考虑的内容我看到正确的JSON对象内容:

localJsonpCallback({"HTMLText":"PRIVACY POLICY: Your privacy is very important to us"}); 

所以这告诉我数据回到客户端,但回调似乎并没有被解雇,文本输入没有被填充。

任何人都可以找到一个问题,我在做什么或有任何解释为什么这不会工作?

+0

尝试使用'url:“http://mySite.com/MyController/Terms”' – Rafay

回答

1

您没有为您的ajax请求定义的success函数。您正在使用的jsonpCallback参数仅定义将由服务器用于包装JSON响应的查询字符串参数的名称。

因此,尝试这样的:

$.ajax({ 
    url: 'http://www.mySite.com/MyController/Terms', 
    type: 'GET', 
    dataType: 'jsonp', 
    timeout: 10000, 
    jsonp: 'jsoncallback', 
    success: function(json) { 
     var terms = json.HTMLText; 
     $('#term2').html(terms); 
    } 
}); 

也会检出following answer

+0

我仍然无法使用您在答案中列出的格式获取回调。 。任何其他的想法?事实上,通过这种方式,我现在甚至不再在萤火虫中看到这个请求。 – leora

+0

我实际上使用你的答案从另一个问题工作:http://stackoverflow.com/questions/4795201/asp-net-mvc-3-jsonp-does-this-work-with-jsonvalueproviderfactory – leora

相关问题