2010-09-13 60 views
3

有人可以顯示返回JSON並支持跨域調用的HTTP處理程序的示例。我正在使用jQuery的getJSON()向我的Web服務器上的.ashx文件發送請求。支持JSONP的ASP.NET通用HTTP處理程序(.ashx)

我知道我需要添加?callback =?到我的URL在getJSON()網址,但我不知道我的ashx文件中的服務器上需要做什麼?

+0

的可能重複[ASP.NET - 傳遞JSON從jQuery來ASHX(HTTP://計算器.com/questions/2948628/asp-net-passing-json-from-jquery-to-ashx) – NotMe 2010-09-13 17:50:45

+0

@Chris Lively--不要這麼想。 – Bigglesby 2010-09-13 18:18:46

回答

1

「跨域」可能成爲一個問題的唯一方法就是如果您使用某種狀態機制(即:cookie)作爲調用的一部分。你不應該這樣做。

否則,請參閱此鏈接:ASP.NET - Passing JSON from jQuery to ASHX以獲取信息。有一些很好的代碼示例可以告訴你該怎麼做。

+0

對不起,但這根本沒有幫助。 – Bigglesby 2010-09-13 18:14:43

10

想通了。我添加了這個功能,我的處理程序,並把它稱爲:

void WriteCallback(HttpContext context, string json) 
     { 
      context.Response.Write(string.Format("{0}({1});", context.Request["callback"], json)); 
     } 

然後在瀏覽器:

$(function() { 
    $.getJSON('MyHandler.ashx?callback=?', { Foo: "Bar" }, function (data) { 

     if (data.SomeCondition) 
      $('#someElement').show(); 

    }); 
}); 
+0

+1對於第一個功能 - 今天爲我節省了一些時間。 – 2011-03-10 23:20:51

+0

謝謝!我一直在撞牆,並沒有意識到在做JSONP調用時,你必須用回調函數名稱來包裝JSON輸出。 – dgundersen 2011-07-14 21:27:54

相關問題