JSONP手書き1

1 <SCRIPT>
 2      / * 
3。       JSONP({
 4           URL: 'HTTP:// localhostを:3000 /'、
 5。          データ: ''、
 6。          成功:関数(データ){
 7                にconsole.log(データ);
 8           }
 。9        })
 10      * / 
11  
12である関数(W){
 13は、         / * *
 14           JSONPが達成*
 15           オプション* @param {オブジェクト}
 16           * / 
17            関数はJSONP(オプション){
 18は               // 1マウントグローバル関数
19                w.getData = option.success;
 20はある               // 2.処理のURLリンク
21れ                option.url = option.url + 'がのgetDataにコールバックを=?' ;
 22れる               // 3.スクリプトタグ挿入体を作成
23ある               VAR scriptEle =のdocument.createElement ( 'スクリプト' );
 24                scriptEle.src = option.url;
 25                document.body.appendChild(scriptEle);
 26である           }
 27            w.jsonp = JSONP;
 28      })(ウィンドウ)
 29 </スクリプト>
 30 <SCRIPT>
 31は、     JSONP({
 32         URL: 'のhttp:// localhostを:3000 /' 33の          成功:関数(データ){
 34              にconsole.log(データ)。
35              アラート( '111' )。
36          }
 37      });
38  
39      JSONP({
 40          URL: 'のhttp:// localhostを:3000 /' 41の          成功:関数(データ){
 42              にconsole.log(データ);
 43              アラート( '222' );
 44          }
 45      });
46  
47      JSONP({
 48         URL: 'のhttp:// localhostを:3000 /' 49の          成功:機能(データ){
 50              はconsole.log(データ);
51              アラート( '333' )。
52          }
 53      });
54 </ SCRIPT>

結果が発生する複数の呼び出しをカバー

1 <SCRIPT>
 2関数(W){
 3          / * *
 4           * JSONP達成
 5           * @param {オブジェクト}オプション
 。6           * / 
7            関数JSONP(オプション){
 8人の               // 0の生成機能異なる名前
。9                VAR .. callBackName = 'itLike' + Math.random()のtoString()SUBSTR(2)+ Math.random()のtoString()SUBSTR(2 .. );
 10                // はconsole.log(callBackName); 
11              // 1。マウントグローバル関数
12である                W [callBackName] = option.success;
 13である               // 2 URLリンク処理
14               option.url = option.url + '?コールバック=' + callBackName。
15                // 3创建スクリプト标签插入体
16                VAR scriptEle =のdocument.createElement( 'スクリプト' );
17                scriptEle.src = option.url。
18                document.body.appendChild(scriptEle)。
19            }
 20            w.jsonp = JSONP。
21      })(ウィンドウ)
22 </スクリプト>
 23 <スクリプト>
 24      JSONP({
 25          URL: 'のhttp:// localhostを:3000 /' 26          成功:機能(データ){
 27              にconsole.log(データ)。
28              警報( '111' )。
29          }
 30      });
31  
32      JSONP({
 33          URL: 'のhttp:// localhostを:3000 /' 34の          成功:関数(データ){
 35              にconsole.log(データ);
 36              アラート( '222' );
 37          }
 38      });
39  
40      JSONP({
 41          URL: 'のhttp:// localhostを:3000 /' 42          成功:機能(データ){
 43              にconsole.log(データ)。
44              アラート( '333' )。
45          }
 46      });
47 </ SCRIPT>
1 <SCRIPT>
 2関数(W){
 3          / * *
 4           * JSONP達成
 5           * @param {オブジェクト}オプション
 。6           * / 
7            関数JSONP(オプション){
 8人の               // 0の生成機能異なる名前
。9                VAR .. callBackName = 'itLike' + Math.random()のtoString()SUBSTR(2)+ Math.random()のtoString()SUBSTR(2 .. );
 10                // はconsole.log(callBackName); 
11              // 1。マウントグローバル関数
12である                [callBackName] = W 関数(データ){
 13であります                   option.success(データ);
 14                    // スクリプトタグ削除し
15                    document.body.removeChild(scriptEleする);
 16                };
 17                // 2処理URLリンク
18は、                '?コールバック=' + option.url = option.url + callBackName ;
 19                // スクリプトタグ挿入体の作成
20は               VAR scriptEle =のdocument.createElement( 'スクリプト' );
 21である                scriptEle.src = option.url;
 22である               document.body.appendChild(scriptEle);
 23である           }
 24            w.jsonp = JSONP;
 25     })(窓);
26 </スクリプト>
 27 <スクリプト>
 28      JSONP({
 29          URL: 'のhttp:// localhostを:3000 /' 30の          成功:関数(データ){
 31              にconsole.log(データ);
 32              アラート( '111' ;
 33          }
 34      });
35  
36      JSONP({
 37          URL: 'のhttp:// localhostを:3000 /' 38の          成功:関数(データ){
 39              にconsole.log(データ);
 40              アラート( '222');
41          }
 42      });
43  
44      JSONP({
 45          URL: 'のhttp:// localhostを:3000 /' 46の          成功:関数(データ){
 47              にconsole.log(データ);
 48              アラート( '333' );
 49          }
 50      });
51 </ SCRIPT>

 

おすすめ

転載: www.cnblogs.com/zhangzhengyang/p/11228223.html