간단한 jsonp 예
2331 단어 ASP.NET
먼저 서비스 측을 써서TestHandler를 만듭니다.ashx
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "application/x-javascript";
string callback = context.Request.QueryString["callback"].Trim();
string name = context.Request.QueryString["name"].Trim();
string str = callback + "([{\"SuitName\":\"" + name + "\"}]);";
context.Response.Write(str);
}
htm 코드:
function displayResult(data) {
$("#msg").text(data[0].SuitName);
}
$(function () {
$("#btn1").click(function () {
var url = "TestHandler.ashx?name=majiang&callback=displayResult"
$.getScript(url);
});
});
여기서 getScript를 통해 jsonp를 만드는 데 있어서는 디스플레이 Result가 전역 함수로 정의된 결함이 있습니다. 만약 jquey가 1.6 이상의 버전이라면 원시적인 aax로 만들 수도 있습니다. 코드는 다음과 같습니다.
$(function () {
$("#btn1").click(function () {
$.ajax({
cache: true,
url: "TestHandler.ashx",
dataType: 'JSONP',
data: "name=majiang",
jsonp: 'callback',
jsonpCallback: 'displayResult',
success: function (data) {
$("#msg").text(data[0].SuitName)
}
});
});
});
그중의 jsonp:'콜백', jsonpCallback:'displayResult'는 URL의 추가 부분으로callback=displayResult
ㅋㅋ 이 정도면 됐어 간단하지