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

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

开发者学堂课程【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

相关文章
|
6月前
接口请求内容改变的问题.
接口请求内容改变的问题.
25 0
|
24天前
|
UED 开发者
ArkTS路由跳转与参数传递:深入理解与实践
在HarmonyOS应用开发中,ArkTS作为主要开发语言,其路由跳转和参数传递机制是实现页面间通信的关键。本文深入探讨了ArkTS中的路由跳转基础,包括页面跳转的方式(如pushUrl和replaceUrl)、参数传递的方法,以及如何在实际开发中应用这些知识,帮助开发者提升应用的用户体验和性能。
233 1
|
1月前
|
JSON 前端开发 数据格式
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
文章详细讲解了在SpringMVC中如何使用`@RequestMapping`进行路由映射,并介绍了前后端参数传递的多种方式,包括传递单个参数、多个参数、对象、数组、集合以及JSON数据,并且涵盖了参数重命名和从URL中获取参数的方法。
98 0
@RequestMapping运用举例(有源码) 前后端如何传递参数?后端如何接收前端传过来的参数,传递单个参数,多个参数,对象,数组/集合(有源码)
|
2月前
|
前端开发
ThinkPHP6表单上传的数据获取的四种方式【请求对象调用,静态调用,助手函数调用,原生的get|post】
本文介绍了在ThinkPHP6中获取表单上传数据的四种方式:请求对象调用、静态调用(Facade)、助手函数调用以及原生的$_GET和$_POST数组。文章通过示例代码展示了每种方式的具体使用方法,并强调了在使用请求对象调用时引入正确的Request类的重要性。
|
3月前
|
运维 Serverless 调度
函数计算产品使用问题之怎么在HTTP触发的函数里添加或读取自定义头部
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
JavaScript API
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
数据交互,前后端数据请求,axios请求,对象结构的使用,E6的使用,结构赋值是什么?函数形参的obj如何,函数形参的obj就改成对象结构接收传入的数据对象
|
存储 小程序 索引
小程序跨页面传递参数的几种方式
小程序跨页面传递参数的几种方式
336 0
|
6月前
|
网络架构
定义vue-router的动态路由以及如何获取传过来的动态参数
定义vue-router的动态路由以及如何获取传过来的动态参数
257 1
|
6月前
|
前端开发
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
AJAX发送请求方法封装和请求函数底层刨析以及axios二次封装
下一篇
无影云桌面