一直知道jsonnpk可以解决跨域问题,但是并没有去学习过。今天就百度学习一下。
jsonnp不是ajax,它们之间是有本质区别的。我个人觉得,jsonnp更像是普通的url请求,但是返回的数据json,而且可以被js来接收和处理的。
常见的有两种写法,原生的,和ajax处理。
1.原生
<script src="http://server.com/tmp/jsonp/remote.js"></script>
这种是 默认方法是 localHandler
var localHandler = function(data) {
alert('远程数据:' + data.result); };<script src="http://server.com/tmp/jsonp/jsonpTest.php?callback=myHandler"></script>
这种是 对应的方法是myHandler
<script>
var myHandler = function(data){ console.log(data); }; </script>2.jquery
$.getJSON("http://www.runoob.com/try/ajax/jsonp.php?jsoncallback=?", function(data) { var html = '
- '; for(var i = 0; i < data.length; i++) { html += '
- ' + data[i] + ' '; } html += '
这种方法更像是ajax调用。只不过他把url补全了,一般ajax处理是ctx+****。个人觉得这种方式更方便,归于一类看起来接口会更统一。