jqueryの中のajax方法はJSONPを通じて遠隔呼び出しを行いますか?


JSONPの概念となぜJSONPを使うのかについては、オンラインで多くの教程がありますが、このセクションでは、JQUERYのajaxメソッドがJSONPを通じてリモート呼出しを行うにはどうすればいいですか?ajaxのパラメータtype:要求方式GET/POST url:住所async:ブールタイプ、デフォルトではtrueの要求は非同期となります。dataType:戻るデータの種類jsonp:要求処理プログラムまたはページに渡され、jQueryの関数名を得るためのパラメータ名(一般的にはデフォルトでは、calback)JsonpCallback:カスタムのjsonpコールバック関数名、デフォルトではjQueryが自動的に生成する確率関数名で、「?」も書くことができます。jQueryは自動的にあなたのためにデータを処理します。success:成功実行した関数errorを呼び出します。例1サーバ側はMVCのACTIONを使ってデータ
 
public class HomeController : Controller
{
//
// GET: /Home/

public ActionResult Index()
{
returnView();
}

public ActionResult ReturnJson()
{
string callback = Request.QueryString["callback"];
string json = "{'name':' ','age':'20'}";
string result = string.Format("{0}({1})", callback, json);
returnContent(result);
}

}
クライアントに戻ります。jsonを使ってデータを転送します。
 
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}

<script src="~/Scripts/jquery-1.7.1.min.js"type="text/javascript"> </script>
<script type="text/javascript">
functionSendData()
{
$.ajax({
type: "get",
async: false,
url: "/home/ReturnJson",
dataType: "jsonp",
success: function(data){
alert(data.name);
},
error: function(){
alert('fail');
}
});
}
</script>

<input type="button" value=" " onclick="SendData();"/>
は提出ボタンをクリックした後、サーバー側のRequest.QueryString[calback]がランダム関数名に戻ります。このように、JSONP形式に設定してデータを転送します。2.カスタム関数名は、転送中に関数名をカスタマイズできます。jsopCallbackパラメータを使えばいいです。jsonp:転送を表すパラメータは、デフォルトではcalbackとしてもカスタマイズできます。サーバーセグメントはこのパラメータを通じて、カスタマイズされた関数名を取得します。サーバはRequest.QueryString[calback]Jsonip Callbackは転送のパラメータ値、つまりコールバックの関数名を取得します。これはカスタムの名前です。
 
<script type="text/javascript">
functionSendData() {
$.ajax({
type: "get",
async: false,
url: "/home/ReturnJson",
dataType: "jsonp",
jsonp: "callback",// , jsonp ( :callback)
jsonpCallback: "receive",// jsonp , jQuery , "?",jQuery
success: function(data) {
alert(data.name);
},
error: function() {
alert('fail');
}
});
}

functionreceive(data) {
alert(data.age);
}
</script>