目录
举例:使用ajax请求云服务器接口中的数据;
一个域名下网站中的网页,去请求另一个域名下网站中的资源,就是跨域。
1. 可以跨域的元素或程序
2. 跨域包括
(1)域名不同:www.a.com下的网页–>www.b.com (2)子级域名不同:oa.baidu.cn下的网页–>hr.baidu.cn (3)端口不同:http://localhost:5500下的网页–>http://localhost:3000 (4)协议不同:http://12306.cn下的网页–>https://12306.cn (5)即使同一台主机,自己的域名与自己的IP地址之间也算跨域:http://localhost:3000下的网页–>http://127.0.0.1:3000
3. 使用ajax发送跨域请求
使用 ajax 发送跨域请求时会报错,如下图:
这是因为浏览器中都有一个 CORS 策略/同源策略(Cross Origin Resources Sharing):浏览器默认只允许当前网页中的 Ajax 请求使用自己网站的资源,不允许 ajax 请求使用其他域名返回的数据。
具体方法是:浏览器自动检查每个响应回来的结果数据的来源地址,用数据的来源地址与当前网页所在的地址比较,如果发现来源地址与网页所在的地址不一致,则禁止网页使用其他来源的数据。
4. 解决跨域问题
CORS 方式,请服务器端篡改数据的来源地址,强行与客户端地址保持一致,骗过浏览器的 cors 策略,使得 cors 策略允许数据进入程序使用。格式如下:
在以上例子中,只需在服务器端添加一句话即可,
再次使用 ajax 发送跨域请求,结果如下:
5. 前后端分离
在开发中前端一个项目,后端一个项目,前后端项目独立运行,这样可以避免互相影响。在后端中可以通过中间件来解决重复写接口的问题:
a. 安装 npm i -save cors
b. 在 nodejs express 项目的 app.js 中:
JavaScript jQuery 终。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/227293.html原文链接:https://javaforall.cn
到此这篇跨域请求(跨域请求的三种方法)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/bcyy/50533.html