ajax的跨域请求_js解决跨域问题

ajax的跨域请求_js解决跨域问题什么是AJAX?AJAX是无需刷新页面就能够从服务器去的数据的一种方法,负责Ajax运作的核心对象是XMLHttpRequest(XHR)对象。同源策略是对XHR的一个主要约束,它为通信设置了“相同的域、相同的端口、相同的协议”这一限制。试图访问上述限制之外的资源都会引发安全错误,除非采用被认可的跨域解决方案。这个方案叫做CORS(Cross-OriginResourceSharing)跨源…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

什么是AJAX?

AJAX 是无需刷新页面就能够从服务器去的数据的一种方法,负责Ajax运作的核心对象是XMLHttpRequest(XHR)对象。

同源策略是对XHR的一个主要约束,它为通信设置了“相同的域、相同的端口、相同的协议”这一限制。

试图访问上述限制之外的资源都会引发安全错误,除非采用被认可的跨域解决方案。

这个方案叫做CORS(Cross-Origin Resource Sharing)跨源资源共享。

哪些访问属于跨域?

三种解决方案:

方案一:

//弊端:存在浏览器兼容的问题

079392267176

AJAX 跨域解决方案 – CORS

需要被请求方的服务端设置: Access-Control-Allow-Origin

切记:Access-Control-Allow-Origin 不可设置为 * ,设置为可访问的域名。

//设置可供访问的白名单

$white_list = [‘http://cdn.abc.com’,’http://abc.com’];

$_SERVER[‘HTTP_ORIGIN’] //表示请求方的域名

$http_origin = ”;

if (!empty($_SERVER[‘HTTP_ORIGIN’]) && in_array($_SERVER[‘HTTP_ORIGIN’],$white_list)) {

$http_origin = $_SERVER[‘HTTP_ORIGIN’];

//设置 header 信息

header(“Access-Control-Allow-Origin: {$http_origin}”);

header(“Access-Control-Allow-Methods”, “POST,GET”);

header(‘Access-Control-Allow-Credentials:true’); //允许访问Cookie

header(‘Access-Control-Allow-Headers : X-Requested-With’); //设置Headers

}

//执行代码逻辑…

另:如果请求的是html,在文件里加上meta标签。

方案二:

//弊端:不支持 POST 请求。

使用 JSONP 进行解决跨域问题,网上文章蛮多的。

方案三:

与方案一类似。

修改Nginx Apache 配置:

//Nginx

http {

……

add_header Access-Control-Allow-Origin *;

add_header Access-Control-Allow-Headers X-Requested-With;

add_header Access-Control-Allow-Methods GET,POST,OPTIONS;

……

}

Apache :

……

Header set Access-Control-Allow-Origin *

大家可以根据自己的情况进行选择方案。

Thanks ~

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172580.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • html中表格整体居中,html中怎么把表格居中

    html中把表格居中的方法:首先创建一个HTML示例文件;然后使用table标签创建一个两行两列的表格;接着给table标签添加一个class属性;最后将margin属性设置为“0auto”即可。本文操作环境:windows7系统、HTML5&&CSS3版、DellG3电脑。html怎么让表格在页面居中新建一个html文件,命名为test.html,用于讲解html怎么让表格在…

    2022年4月5日
    409
  • 设计模式之桥接(bridge)模式

    在现实生活中,我们常常会用到两种或多种类型的笔,比如毛笔和蜡笔。假设我们需要大、中、小三种类型的画笔来绘制12中不同的颜色,如果我们使用蜡笔,需要准备3*12=36支。但如果使用毛笔的话,只需要提供3

    2021年12月19日
    52
  • 超详细的ENSP安装教程附下载地址「建议收藏」

    超详细的ENSP安装教程附下载地址「建议收藏」下载完成后解压,可以得到如下图四个文件:这里面,我们先安装2、3、4,ensp需要下面软件安装完成后方可进行安装。VirtualBox虚拟机安装:这里我们双击运行程序,点击下一步这里面我们可以设置安装的路径,如需设置点击浏览选择安装的路径即可,建议默认,点击下一步这里面默认,选择下一步这里面开始安装,选择是点击安装等待安装完成安装完成后点击完成即可,这里虚拟机就安装完成了。下面我们开始安装Wireshark。……

    2022年10月14日
    2
  • GIT、GITLAB、GITHUB、GITLIB[通俗易懂]

    GIT、GITLAB、GITHUB、GITLIB[通俗易懂]Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Github-一个网站,提供给用户空间创建git仓储,保存用户的一些数据文档或者代码等作为开源代码库以及版本控制系统,Github目前拥有140多万开发者用户。随着越来越多的应用程序转移到了云上

    2025年5月31日
    2
  • 中国电信4g最快服务器IP,中国电信DNS IP地址大全(32个省)

    中国电信4g最快服务器IP,中国电信DNS IP地址大全(32个省)中国电信DNSIP地址,包括广东电信DNS,上海电信DNS,北京电信DNS,浙江电信DNS,江苏电信DNS等共全国32个电信省份的DNSIP地址。中国电信辽宁省沈阳市DNS59.46.69.66中国电信辽宁省大连市DNS59.44.126.20中国电信青海省西宁市DNS202.100.138.68中国电信新疆乌鲁木齐市DNS61.128.114.133中国电信新疆乌…

    2022年7月11日
    269
  • LINUX内核目录文件说明

    LINUX内核目录文件说明 内核空间和用户空间     在下载内核前,我们应该讨论一些重要的术语和事实。首先了解一下内核空间和用户空间    内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不管是内核空间还是用户空间,它们都处于虚拟空间中。   1.内核空间    Linux内核是一个宏内核,这意味着整个操作系统都运行在内核预留的内存里。内…

    2022年7月23日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号