有人可以显示返回JSON并支持跨域调用的HTTP处理程序示例。我正在使用jQuery的getJSON()将请求发送到我的Web服务器上的.ashx文件。
我明白我需要添加?callback =?到getJSON()url中我的url,但我不确定我的ashx文件中需要在服务器上做什么?
答案 0 :(得分: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();
});
});
答案 1 :(得分:1)
“跨域”可能成为问题的唯一方法是,如果您使用某种状态机制(即:cookies)作为呼叫的一部分。你不应该这样做。
否则,请参阅此链接:ASP.NET - Passing JSON from jQuery to ASHX获取信息。有一些很好的代码示例可以向您展示如何做。