Ajax-08 跨域获取最新电视节目清单实例

2024-03-10 18:30

本文主要是介绍Ajax-08 跨域获取最新电视节目清单实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目标一

请求江西网络广播电视台电视节目

URL:http://www.jxntv.cn/data/jmd-jxtv2.html

 分析

1.从Http头信息分析得知,器服务端未返回响应头Access-Control-Allow-xxxx 相关信息,所以只能使用JSONP方式

2.从返回值内容中分析得知,其返回值永远是:list(响应内容),即:由于服务器将函数名写死为list,所以指定callback在此程序中无效。

list({data: [{"week": "周日","list": [{"time": "0030","name": "通宵剧场六集连播","link": "http://www.jxntv.cn/live/jxtv2.shtml"},{"time": "2250","name": "都市晚剧场","link": "http://www.jxntv.cn/live/jxtv2.shtml"}]}]
});
实现

get_tv_list.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>跨域请求最新电视节目清单</title>
</head>
<body><h1>跨域请求</h1>
<input type="submit" value="XmlSendRequest获取节目" onclick="XmlSendRequest();"/><input type="submit" value="JqSendRequest-获取节目" onclick="JqSendRequest();"/><script type="text/javascript" src="http://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>function XmlSendRequest() {// 创建script标签var tag = document.createElement('script');// 指定src
        tag.src = "http://www.jxntv.cn/data/jmd-jxtv2.html";// 添加到head标签中
        document.head.appendChild(tag);// 删除script标签
        document.head.removeChild(tag);}function JqSendRequest() {$.ajax({url: "http://www.jxntv.cn/data/jmd-jxtv2.html",type: 'GET',dataType: 'jsonp'})}
function list(arg) {console.log(arg);}</script> </body> </html>

 

目标二

请求爱奇艺海贼王节目清单

URL:http://cache.video.iqiyi.com/jp/avlist/202861101/1/?callback=call

 分析

1.从Http头信息分析得知,器服务端未返回响应头Access-Control-Allow-xxxx 相关信息,所以只能使用JSONP方式

2.从返回值内容中分析得知,当传入callback时,返回callback回调函数名,所以指定callback在此程序中有效。

try{call({"bmsg": {"t": "20170412084110","f": "kafka","sp": "402871101,"},"code": "A00000","data": {"pp": 75,"ps": "","pt": 783,"vlist": [{"mdown": 0,"publishTime": 1438650931000,"vpic": "http://pic9.qiyipic.com/image/20150803/96/f9/v_109343020_m_601.jpg","tvQipuId": 385274600,"purType": 0,"qiyiProduced": 0,"shortTitle": "航海王 第1集","type": "1","vurl": "http://www.iqiyi.com/v_19rrok4nt0.html","plcdown": {"17": 0,"15": 0},"vid": "e59fa071d268247291f7737c72ea37f8","timeLength": 1500,"pd": 1,"vn": "航海王 第1集","payMark": 0,"exclusive": 1,"id": 385274600,"vt": "我是路飞! 将要成为海贼王的男人","pds": "1"},{"mdown": 0,"publishTime": 1438678286000,"vpic": "http://pic8.qiyipic.com/image/20150804/5f/27/v_109343021_m_601_m2.jpg","tvQipuId": 385275700,"purType": 0,"qiyiProduced": 0,"shortTitle": "航海王 第2集","type": "1","vurl": "http://www.iqiyi.com/v_19rrok4ms8.html","plcdown": {"17": 0,"15": 0},"vid": "c183093e2c60e7a34eb6758c3f997a1e","timeLength": 1500,"pd": 2,"vn": "航海王 第2集","payMark": 0,"exclusive": 1,"id": 385275700,"vt": "大剑客现身!海贼猎人罗罗诺亚·卓洛","pds": "2"}],"bossType": "0","aQipuId": 202861101,"qiyiProduced": 0,"allNum": 783,"pg": "1","isBossMixer": 0,"ic": 783,"pgt": 11,"aid": 202861101,"pm": 0,"pn": 75,"cid": 4},"timestamp": "20170412084110"});
}catch(e){};
实现

get_tv_list.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>跨域请求最新电视节目清单</title>
</head>
<body><h1>跨域请求最新电视节目清单</h1>
<input type="submit" value="XmlSendRequest-jsonp" onclick="XmlSendRequest();"/><input type="submit" value="JqSendRequest-jsonp" onclick="JqSendRequest();"/><script type="text/javascript" src="http://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
<script>// 客户端定义回调函数function call(arg) {console.log('客户端定义回调函数执行:', arg);}function XmlSendRequest() {// 创建script标签var tag = document.createElement('script');// 指定src
        tag.src = "http://cache.video.iqiyi.com/jp/avlist/202861101/1/?callback=call";// 添加到head标签中
        document.head.appendChild(tag);// 删除script标签
        document.head.removeChild(tag);}function JqSendRequest() {$.ajax({url: "http://cache.video.iqiyi.com/jp/avlist/202861101/1/",type: 'GET', // POST 也会自动转换为GET请求
            dataType: 'jsonp',jsonp: "callback",jsonpCallback: 'call', // 请求成功返回后,客户端执行call函数
            success: function (data, statusText, xmlHttpRequest) {// 未指定jsonCallback时,则自定执行方法
                console.log('success 回调执行:', data);}// 如上请求如 http://cache.video.iqiyi.com/jp/avlist/202861101/1/?callback=call
        })}
</script>
</body>
</html>

 


***微信扫一扫,关注“python测试开发圈”,了解更多测试教程!***

转载于:https://www.cnblogs.com/guanfuchang/p/6687668.html

这篇关于Ajax-08 跨域获取最新电视节目清单实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/795125

相关文章

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法

《golang获取当前时间、时间戳和时间字符串及它们之间的相互转换方法》:本文主要介绍golang获取当前时间、时间戳和时间字符串及它们之间的相互转换,本文通过实例代码给大家介绍的非常详细,感兴趣... 目录1、获取当前时间2、获取当前时间戳3、获取当前时间的字符串格式4、它们之间的相互转化上篇文章给大家介

AJAX请求上传下载进度监控实现方式

《AJAX请求上传下载进度监控实现方式》在日常Web开发中,AJAX(AsynchronousJavaScriptandXML)被广泛用于异步请求数据,而无需刷新整个页面,:本文主要介绍AJAX请... 目录1. 前言2. 基于XMLHttpRequest的进度监控2.1 基础版文件上传监控2.2 增强版多

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Springboot处理跨域的实现方式(附Demo)

《Springboot处理跨域的实现方式(附Demo)》:本文主要介绍Springboot处理跨域的实现方式(附Demo),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录Springboot处理跨域的方式1. 基本知识2. @CrossOrigin3. 全局跨域设置4.

springboot security验证码的登录实例

《springbootsecurity验证码的登录实例》:本文主要介绍springbootsecurity验证码的登录实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录前言代码示例引入依赖定义验证码生成器定义获取验证码及认证接口测试获取验证码登录总结前言在spring

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

python+opencv处理颜色之将目标颜色转换实例代码

《python+opencv处理颜色之将目标颜色转换实例代码》OpenCV是一个的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上,:本文主要介绍python+ope... 目录下面是代码+ 效果 + 解释转HSV: 关于颜色总是要转HSV的掩膜再标注总结 目标:将红色的部分滤