10 09/2014

json 和 jsonp 区别

最后更新: Wed Sep 10 2014 12:37:50 GMT+0800

json 纯数据

{
    "name":"guoshuang",
    "city":"xi'an"
}

输出:

jsonp 带数据的javascript,可跨域

jsonp_func({
    "name":"guoshuang",
    "city":"xi'an"
});

输出:

使用时

<script type="application/javascript" src="/labs/json-vs-jsonp.jsonp"> </script>

当然 jsonp_func 需要另外定义。

    
function jsonp_func(d){
    $('#json-vs-jsonp-log2').text(JSON.stringify(d));
}

当然,也可以直接在 $.ajax 中 dataType:’jsonp’,来直接执行 jsonp。(这样就不用 success:function(data){,,,} 来折腾 data 了)

当然,更可以这样载入

function func(json){
  alert(json.name);
}
var elm = document.createElement("script");
elm.setAttribute("type", "text/javascript");
elm.src = "http://example.com/jsonp";
document.body.appendChild(elm);

via wikipedia JSONP