亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ajax小demo---JSONP 跨域原理及簡單應用

發布時間:2020-08-02 23:33:11 來源:網絡 閱讀:1122 作者:蝸牛oscersong 欄目:開發技術

一.jsonp

   Jsonp(JSON with Padding) 是 json 的一種"使用模式",可以讓網頁從別的域名(網站)那獲取資料,即跨域讀取數據。

因為同源策略,(它是由Netscape提出的一個著名的安全策略,現在所有支持JavaScript 的瀏覽器都會使用這個策略。)我們不能從不同的域(網站)訪問數據,而jsonp就是用來實現這種不能跨域請求數據。

二.jsonp原理:

   在同源策略下,在某個服務器下的頁面是無法獲取到該服務器以外的數據的,但img、iframe、script等標簽是個例外,這些標簽可以通過src屬性請求到其他服務器上的數據。然而,JSONP就是通過script節點src屬性來實現調用跨域的請求。通過動態的創建script標簽,當我們通過JSONP模式請求跨域資源時,服務器返回給客戶端一段javascript代碼,這段javascript代碼自動調用客戶端回調函數。

三.實例

當使用ajax本地調用url='http://127.0.0.1/ajax/json/test.php?data='+jsonobj+"&r="+Math.random();會出現下面的錯誤:不能跨域請求

ajax小demo---JSONP 跨域原理及簡單應用然而,

使用jsonp就可以解決這個問題:具體代碼如下:

<script>
	 var result=false;	
		function check(){
			if(resultform()){
				return true;
			}
			else{
				return false;
			}
		}
     function checkform(){
            var usernameobj=document.getElementById('username').value;
            var usernumobj=document.getElementById('usernum').value;
            var data={username:usernameobj,usernum:usernumobj};
	    var jsonobj=JSON.stringify(data);   
             url='http://127.0.0.1/ajax/json/test.php?data='+jsonobj+"&r="+Math.random()+"&callbackname=jp";         
            //動態添加script標簽
	   var scripttag=document.createElement("script");
            scripttag.setAttribute("src",url);
            document.body.appendChild(scripttag);
   
        
}
    //客戶端回調函數
       var jp=function(data){
              var tips=document.getElementById('tips');
              if(data['username']=="11"){
		 tips.innerHTML="<h2>你輸入的名字是:"+data['username']+"</h2>";
		   result=true;
	        }
              else{
		   tips.innerHTML="<h2>你輸入的有誤</h2>";
			result=false;
			    }

              resultform();
               
			}
                       
function resultform(){
	if(result){
		return true;
	}
	else{
		alert("您輸入的有誤");
		return false;
	}
}
	</script>
php頁面代碼:
<?php
    $data = json_decode($_GET['data'],true);
    $callbackname=$_GET['callbackname'];
    echo $callbackname  ."(".json_encode($data).")" ;
 ?>

效果圖:

ajax小demo---JSONP 跨域原理及簡單應用

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三河市| 喀什市| 芮城县| 新绛县| 聂荣县| 天祝| 彝良县| 和平县| 都安| 改则县| 兰坪| 光山县| 奈曼旗| 崇阳县| 延津县| 航空| 霞浦县| 喜德县| 峨山| 青龙| 五家渠市| 通榆县| 泸水县| 台南市| 怀宁县| 明水县| 丹棱县| 泸定县| 邵武市| 武宁县| 新乐市| 万山特区| 商城县| 云阳县| 吴江市| 曲周县| 大新县| 凌源市| 永平县| 慈利县| 丰都县|