支持JSONP的ASP.NET通用HTTP处理程序(.ashx)

Big*_*sby 3 asp.net ajax json jsonp

有人可以显示返回JSON并支持跨域调用的HTTP处理程序的示例.我正在使用jQuery的getJSON()将请求发送到我的Web服务器上的.ashx文件.

我明白我需要添加?callback =?在getJSON()url中我的url,但我不确定在我的ashx文件中需要在服务器上做什么?

Big*_*sby 10

弄清楚了.我将此函数添加到我的处理程序并调用它:

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

然后在浏览器中:

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

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

    });
});
Run Code Online (Sandbox Code Playgroud)