jquery ajax跨域 jsonp

來源:互聯網
上載者:User

jquery的$.getJson 方法是支援跨域的

頁面請求:

$.getJSON(url+'?callback=?',{operate:'add'}, function (res){ }        });

其實就是$.ajax的又一個封裝

$.ajax({type:'get',url:url,data:{},dataType:'jsonp',callback:'json_callback',success:function(res){} })

伺服器php:

$callback=$_GET['callback'];print_r("$callback({key:\"value\"});");

原理:

需要傳一個callback的回呼函數名到伺服器端,伺服器端拿到這個回呼函數名,再將返回資料用參數的形式反回到用戶端,這樣用戶端就能夠調到。

callback=?就是不指定回呼函數名,jquery會自動產生一個,類似這樣:jsonp12148037045654,用firebug可以查看。

伺服器端拿到這個callback,的返回格式就是 jsonp12148037045654({operate:'add'}); 像不像一個函數的定義。

使用$.ajax,指定callback參數,就相當於自訂了這個callback為“json_callback”,不需要jquery自動產生。

ajax 跨域請求是不支援post的,切記。

jquery官網:

http://api.jquery.com/jQuery.getJSON/#urldatacallback

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.