跨域jsonp+jQuery+json+html动态生成表格
1、什么是跨域
浏览器对于javascript的同源策略的限制,例如a.cn下面的js不能调用b.cn中的js,对象或数据(因为a.cn和b.cn是不同域),所以跨域就出现了.
凡是拥有scr这个属性的标签都可以跨域例如<script><img><iframe>
数据接口网站:https://www.nowapi.com/api
2、实例

//引用jQuery
<script type="text/javascript" src="js/jquery.js"></script>
方法一:动态生成整个表格
<body>
请输入城市:<input type="text" id="tid" value="" />
<input type="button" id="btn" value="查询1"/>
<!--生成的表格放在div中 -->
<div id="did"></div>
</body>
<script type="text/javascript">
$(function(){
$('#btn').click(function(){
var loc=$("#tid").val();
console.log(loc)
//只需要把weaid的内容改变就可以查到对应城市天气
//format=json返回json数据类型
//jsoncallback=hundle 执行hundle方法
var url ='http://api.k780.com/?app=weather.future&weaid='+loc+'&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json&jsoncallback=hundle';
$.getScript(url,function(){
console.log("jsonp done");
});
});
//hundle方法
function hundle(data){
console.log(data);
console.log(data.result);
//表格删除
$('#tableId').remove();
var table=$("<table id='tableId' border='1px'>").appendTo($("#did"));
table.html("<tr><td>日期</td><td>星期</td><td>温度</td></tr>");
$.each(data.result, function(index, e) {
console.log(index + "=" + e.days);
var tr = $('<tr/>');
$('<td>').html( e.days).appendTo(tr);
$('<td>').html(e.week).appendTo(tr);
$('<td>').html(e.temperature).appendTo(tr);
$('#tableId').append(tr);
});
}
});
</script>
方法二:表格在页面生成动态追加行
<body>
请输入城市:<input type="text" id="tid" value="" />
<input type="button" id="btn2" value="查询2"/>
<table border="1px" id="tableId2">
<tr>
<td>日期</td>
<td>星期</td>
<td>温度</td>
</tr>
</table>
</body>
<script type="text/javascript">
$(function(){
$('#btn2').click(function(){
var loc=$("#tid").val();
console.log(loc)
var url ='http://api.k780.com/?app=weather.future&weaid='+loc+'&&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json&jsoncallback=hundle2';
$.getScript(url,function(){
console.log("jsonp done");
});
});
});
function hundle2(data){
console.log(data);
console.log(data.result);
//除了第一行删除
$('tr:gt(0)').remove();
$.each(data.result, function(index, e) {
console.log(index + "=" + e.days);
var tr = $('<tr/>');
$('<td>').html( e.days).appendTo(tr);
$('<td>').html(e.week).appendTo(tr);
$('<td>').html(e.temperature).appendTo(tr);
$('#tableId2').append(tr);
});
}
</script>
跨域jsonp+jQuery+json+html动态生成表格的更多相关文章
- js将json数据动态生成表格
今天开发中遇到需要展示动态数据的问题, 具体要求是后端传来的json字符串,要在前端页面以table表格的形式展示, 其实没啥难的,就是拼接table标签,纯属体力活,于是自己写了个呆萌,保存起来,以 ...
- jQuery $.ajax跨域-JSONP获取JSON数据(转载)
Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ...
- jQuery 根据JSON数据动态生成表格
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- jQuery利用JSON数据动态生成表格
<style type="text/css"> table.gridtable { font-family: verdana,arial,sans-serif; fon ...
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- js实现跨域(jsonp, iframe+window.name, iframe+window.domain, iframe+window.postMessage)
一.浏览器同源策略 首先我们需要了解一下浏览器的同源策略,关于同源策略可以仔细看看知乎上的一个解释.传送门 总之:同协议,domain(或ip),同端口视为同一个域,一个域内的脚本仅仅具有本域内的权限 ...
- Ajax进阶之原生js与跨域jsonp
什么是Ajax? 两个数求和: 用Jquery和数据用json格式 viws函数: from django.shortcuts import render,HttpResponse # Create ...
- 什么是同源策略,什么是跨域,如何跨域,Jsonp/CORS跨域
同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响. 可以说Web是构建在同源策略基础之上 ...
- 由浅入深学习ajax跨域(JSONP)问题
什么是跨域?说直白点就是获取别人网站上的内容.但这么说貌似又有点混淆,因为通常我们用ajax+php就可以获取别人网站的内容,来看下面这个例子. 来看看跨域的例子,jquery+ajax是不能跨域请求 ...
随机推荐
- ConcurrentSkipListSet - 秒懂
疯狂创客圈 经典图书 : <Netty Zookeeper Redis 高并发实战> 面试必备 + 面试必备 + 面试必备 [博客园总入口 ] 疯狂创客圈 经典图书 : <Sprin ...
- 三、WPF入门教程——布局和常用Panel学习
布局和常用Panel学习 一.简介 所有的WPF布局容器都派生自System.Windows.Controls.Panel.Panel继承自FrameworkElement. 在Panel中有一个比较 ...
- 树莓派FRP内网穿透及自启动
内网穿透的步骤和文件存档 实验室在远方部署了电脑主机来采集数据和图片,每次去调试会很麻烦,因而使用FRP内网穿透使得我们可以在实验室访问主机. 主要功能 实现远程可访问和开机自启FRP程序服务 安装和 ...
- Java-Lambda相关使用介绍
频繁使用的语句 Lambda又涉及到comparator和comparable区别(Comparable是实现comparable接口,实现后可以使用Collections.sort或Arrays ...
- 带你掌握C++中三种类成员初始化方式
摘要:在C++11之后,声明时初始化->初始化列表->构造函数初始化. 本文分享自华为云社区<如何编写高效.优雅.可信代码系列(3)--类成员初始化的三种方式>,原文作者:我是 ...
- Linux中使用QT读取并显示温度传感器数值
环境: Ubuntu 16.04 64 bit QT5.13.1/QT5.12 原理 对于Linux来说一切都是文件,温度传感器也是个文件,如果要获取某个温度传感器的数值,可以读取相应的文件,Linu ...
- 03 Git 以及 其 GUI TortoiseGit 的下载与安装
前面也说过嘛,要紧跟大佬们的步伐--选择最受欢迎的版本控制系统. 而根据 [JetBrains](JetBrains: Essential tools for software developers ...
- Java实现适配器模式
适配器模式(Adapter) 适配器模式涉及到3个角色:要被适配的接口,适配器,目标接口 适配器的工作就是将被适配的接口转换为目标接口 "鸭子类型"就是一个典型的适配器模式:如果它 ...
- 温故知新Docker概念及Docker Desktop For Windows v3.1.0安装
Docker 简介 什么是Docker? Docker是一个开放源代码软件项目,项目主要代码在2013年开源于GitHub.它是云服务技术上的一次创新,让应用程序布署在软件容器下的工作可以自动化进行, ...
- NuGet微软官方中国镜像地址
https://nuget.cdn.azure.cn/v3/index.json