跨域的本质-动态创建 script 标签| 学习笔记

简介: 快速学习跨域的本质-动态创建 script 标签。

开发者学堂课程【Ajax 前端开发入门与实战跨域的本质-动态创建 script 标签】学习笔记,与课程紧密联系,让用户快速学习知识。

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


跨域的本质-动态创建 script 标签

 

一、举例

创建 weather03.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;

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

head.appendChild(script);

};

};

</script>

</head>

<body>

 <h1>气信息查询</h1>

<input type="text"id="city"placeholder="请输入 城市名称">

<input type="button"id="btn"value="查询">

</body>

</html>

data.php 文件:

<?php

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

if($city == "beijing") {

echo "foo('北京的天气晴')";

}else {

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

}

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

?>

输入 beijing 浏览器查询输出值为:

image.png 

输入 beijing1 浏览器查询输出值为:

image.png 

通过动态创建 script 标签,动态指定 src 属性来访问外部的 php 文件。

而这个文件会根据传递过来的参数而作对应的输出,输出的内容就是 JS 的方法调用,这个方法在前端界面中已经事先定义好,通过这个方法就可以得到我们想要的数据。

相关文章
|
3月前
|
前端开发 JavaScript SEO
如何精通HTML:掌握元素的全局公共属性秘籍
如何精通HTML:掌握元素的全局公共属性秘籍
|
4月前
|
前端开发 JavaScript 应用服务中间件
iframe动态操作标签分享
iframe动态操作标签分享
40 0
|
6月前
|
JavaScript 前端开发
11.JavaScript 事件的概念以及绑定方法
11.JavaScript 事件的概念以及绑定方法
|
6月前
|
前端开发 JavaScript
前端 JS 经典:判断对象属性是否存在
前端 JS 经典:判断对象属性是否存在
121 0
|
6月前
|
JavaScript 前端开发 UED
探究: 为什么JavaScript要在body标签尾部引入?
探究: 为什么JavaScript要在body标签尾部引入?
68 0
|
Web App开发 缓存 JavaScript
页面访问时渲染过程中 HTML、JS 的关系
之前写过一篇关于不同 DOM 操作结果不同的文章,那篇文章只是简单的介绍了一下 HTML 及外部资源与 JS 脚本执行的一个时机,其实这个还可以再拓展一下,比如 JS 和 DOMContentLoad
|
JavaScript 前端开发
详细解析JavaScript中的全局属性和方法
详细解析JavaScript中的全局属性和方法 今天来补充JavaScript中的最后一部分内容,JavaScript中的全局属性和方法(函数)。 1.全局属性 // 属性 // Infinity 代表正的无穷大的数值。 // 在Javascript中,超出 1.7976931348623157E+103088 的数值即为Infinity,小于 -1.7976931348623157E+103088 的数值为无穷小。 var num1 = 1.7976931348623157E+103088; var num2 = -1.79769313486
|
Web App开发 JavaScript 前端开发
JavaScript 技术篇-js获取iframe内的元素方法实例演示
JavaScript 技术篇-js获取iframe内的元素方法实例演示
722 0
JavaScript 技术篇-js获取iframe内的元素方法实例演示
|
移动开发 编解码 HTML5
HTML5全局属性和事件
HTML5全局属性和事件