程序员的知识教程库

网站首页 > 教程分享 正文

Python工程师必懂的操作django中JSONP跨域请求本质(附例子步骤)

henian88 2024-09-06 18:46:48 教程分享 83 ℃ 0 评论

1、先演示一下关于跨域请求,这里写一个简单的例子:

在views.py中写如下代码:

在前端页面req.html代码如下:

这样当我们访问页面的时候:

我们可以看出当我们通过requests模块访问页面的时候是可以拿到页面的返回的数据,这个时候是通过模块发送的请求,和浏览器并没有关系。

但是当我通过通过页面上的js获取页面数据的时候,页面如下:

由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性。

特别的:由于同源策略是浏览器的限制,所以请求的发送和响应是可以进行,只不过浏览器不接受罢了所以通过script标签解决跨域请求的问题

创建script标签

属性src=远程地址

返回的数据必须是js格式

JSONP只能发送GET请求不能发送POST请求

2、下面模拟一下跨域请求,这里创建两个django程序,第一个用于接受跨域请求,一个用于发送跨域请求

接受跨域请求的代码如下,这里只是在views.py中写了一个函数用于接受跨域请求

发送跨域请求的代码如下:这里只是在第二个django程序中的前端的代码

这样当打开第二个django程序的页面的时候,店家获取数据,就会提出提示框,并且在第一个django程序的后台可以看到发送请求的数据

代码中使用的callback是一种已经形成的一种规范,大部分人都是这样写,所以建议命名为callback

讲上述发送跨域请求的django程序的代码代码通过jQuery实现:


以上是全部内容,只是善于分享,不足之处请包涵!爬虫基本的原理就是,获取源码,进而获取网页内容。一般来说,只要你给一个入口,通过分析,可以找到无限个其他相关的你需要的资源,进而进行爬取。


我也写了很多其他的非常简单的入门级的爬虫详细教程,

关注后,点击我的头像,就可以查看到。

欢迎大家一起留言讨论和交流,谢谢!

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表