首頁  >  文章  >  web前端  >  三種jQuery使用JSONP實作跨域取得資料的方法

三種jQuery使用JSONP實作跨域取得資料的方法

小云云
小云云原創
2018-05-23 09:22:134413瀏覽

本文主要介紹了jQuery使用JSONP實現跨域獲取數據的三種方法,結合實例形式對比分析了jsonp跨域獲取數據的3種常用操作技巧,需要的朋友可以參考下,希望能幫助大家。

第一種方法是在ajax函數中設定dataType為'jsonp'

$.ajax({
  dataType: 'jsonp',
  url: 'http://www.a.com/user?id=123',
  success: function(data){
    //处理data数据
  }
});

第二種方法是利用getJSON來實現,只要在位址中加上callback=?參數即可

$.getJSON('http://www.a.com/user?id=123&callback=?', function(data){
  //处理data数据
});

第三種方法是使用getScript方法

//此时也可以在函数外定义foo方法
function foo(data){
  //处理data数据
}
$.getScript('http://www.a.com/user?id=123&callback=foo');

實例演練:

#index.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>jsonp</title>
<script src="jquery-1.8.0.min.js"></script>
<script>
  $.ajax({
    type : "post",
    url : "jsonp.php?name=zhaoxiace&age=30",
    dataType : "jsonp",
    jsonp: "callbackParam",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
    jsonpCallback:"callbackFunction",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
    success : function(data){
      console.log(data.statusCode + "/" + data.message + "/" + data.name + "/" + data.age);
    },
    error:function(){
      alert(&#39;请求失败&#39;);
    }
  });
</script>
</head>

jsonp.php

<?
$data["age"] = $_GET[&#39;age&#39;];
$data["name"] = $_GET[&#39;name&#39;];
$data["statusCode"]="200";
$data["message"]="成功";
$tmp= json_encode($data); //json数据
echo $callback . &#39;(&#39; . $tmp .&#39;)&#39;; //返回格式,必需
?>

#相關推薦:

html5怎麼進行跨域通訊

#jQuery Jsonp跨域模擬搜尋引擎實例分享

# ###原生JS實作ajax與ajax的跨域請求#######

以上是三種jQuery使用JSONP實作跨域取得資料的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn