JSONPI mit ASP.NET
JSONPI - ist JSONP + IFrame eine Möglichkeit POST Aufrufe zu erzeugen auf Domains die dem eignen Context nicht angehören zugreifen zu können.
https://github.com/benvinegar/jquery-jsonpi
Das Beispiel läuft mit PHP und hier ein HttpHandler der es ermöglicht JSONPI mit ASP.NET zu verwenden.
<script type="text/javascript">
$(function () {
$.ajax({
url: 'JSONPI.ashx',
type: 'POST',
dataType: 'jsonpi', // <---
params: { 'resulttype': 'project' },
success: function (response) {
alert(response.length);
}
});
});
</script>
und hier noch der HandlerCode:
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/html";
context.Response.ContentEncoding = System.Text.Encoding.UTF8;
var callback = context.Request.Params["callback"];
List<Project> items = new ProviderFactory().GetProjectProvider().Get();
string json = string.Empty;
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(List<Project>));
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, items);
json = System.Text.Encoding.UTF8.GetString(ms.ToArray());
}
var output = "<!DOCTYPE html><html><head>" +
"<script>// document.domain = '" + context.Request.UserHostName + "';</script>" +
"</head>" +
"<body>" +
"<script type=\"text/javascript\"> window.parent." + callback + "(" + json + ");</script>" +
"</body></html>";
context.Response.Write(output);
}