2011-09-26 39 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

相關問題