跨域的本质-动态指定回调函数名称| 学习笔记

简介: 快速学习跨域的本质-动态指定回调函数名称。

开发者学堂课程【Ajax 前端开发入门与实战跨域的本质-动态指定回调函数名称】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/595/detail/8545


跨域的本质-动态指定回调函数名称 

 

内容介绍:

一、由前端决定回调方法名称

二、简化 script 标签

 

一、由前端决定回调方法名称

例:

创建 weather04.html:

<script type="text/javascript">

function foo(data){

console.log(data) ;

}

</script>

<script type="text/javascript"src="http://www.lisi. com/

data.php?city=shanghai"></script>

<script type="text/javascript">

window.onload = function(){

var btn = document.querySelector("#btn");

btn.onclick = function(){

var cityName = document.querySelector("#city").value;

//动态创建 script 标签,动态制定 src 属性的值

var script = document.createElement("script");

script.src="http://www.lisi.com/data.php?city="+cityName +"$Icallback=foo2" ; 

var head = document.querySelector("head" );

head.appendChild(script);

};

};

</script>

</head>

<body>

data.php 改为:

<?php

$cbName = $_ GET["callback"];

$city = $_ GET["city"];

if($city =="beijing"){

echo $cbName."('北京的天气晴')";

}else {

echo $cbName."foo('没有查询到天气信息')";

}

//echo"var str = 'haha'";

?>

后台接口会根据“&cbName”返回对应名称的方法调用。

data.php 只要能获取到“callback”这个值,就可以将这个值所对应的方法进行调用。

输入参数 beijing 浏览器输出为:

image.png

 

二、简化 script 标签

省去第一个 script 标签,改为:

<script type="text/javascript">

window.onload = function(){

var btn = document.querySelector("#btn");

btn.onclick = function(){

var cityName = document.querySelector(”#city").value;

//动态创建 script 标签,动态制定 src 属性的值

var script =document.createElement("script");

script.src="http://www.lisi.com/data.php?city="+cityName +"&callback=foo2"

window["foo2"] = function( data){

console.log(data);

}

var head= document.querySelector("head" );

head.appendChild(script);

};

};

</script>

</head>

<body> 

输入参数 beijing 浏览器输出为:

image.png

相关文章
PPT 图片8大操作技巧
PPT 图片8大操作技巧
100 0
|
XML Java 数据格式
Spring框架学习 -- Bean的生命周期和作用域
Spring框架学习 -- Bean的生命周期和作用域
184 2
|
SQL 存储 Oracle
SQL数据查询——连接查询
SQL数据查询——连接查询
872 0
|
SQL 人工智能 前端开发
ChatGPT 与软件架构 (1) - 快速原型
ChatGPT 与软件架构 (1) - 快速原型
298 0
|
算法 C++ 计算机视觉
MATLAB--数字图像处理 图像的灰度变换与直方图修正
MATLAB--数字图像处理 图像的灰度变换与直方图修正
428 0
MATLAB--数字图像处理  图像的灰度变换与直方图修正
|
Java 关系型数据库 MySQL
JDBC第一天~JDBC(java DataBase Connectivity,java连接数据库)
JDBC第一天~JDBC(java DataBase Connectivity,java连接数据库)
190 0
JDBC第一天~JDBC(java DataBase Connectivity,java连接数据库)
|
存储 Swift 索引
Swift5.1—泛型约束
Swift5.1—泛型约束
186 0
|
Linux
Linux常用命令 - cat命令详解
Linux常用命令 - cat命令详解
258 0
|
安全 网络协议 Linux
用 Postfix+Dovecot 在 CentOS7 上快速搭建自己的安全邮件服务器
用 Postfix+Dovecot 在 CentOS7 上快速搭建自己的安全邮件服务器,用 yum 安装实现快速,用 ssl 加密实现安全!
7718 0