不同域的远程访问之前是用jsonp,但是只能支持get请求,而且写法也很恶心。现在HTML5都来了,应该优先用CORS
前端请求代码
function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// 此时即支持CORS的情况
// 检查XMLHttpRequest对象是否有“withCredentials”属性
// “withCredentials”仅存在于XMLHTTPRequest2对象里
xhr.withCredentials = true;
xhr.open(method, url, true);
// xhr.setRequestHeader('Content-Type', 'application/json');
//xhr.onreadystatechange = handler;
} else if ( typeof XDomainRequest != "undefined") {
console.log("ie support");
// 否则检查是否支持XDomainRequest,IE8和IE9支持
// XDomainRequest仅存在于IE中,是IE用于支持CORS请求的方式
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// 否则,浏览器不支持CORS
xhr = null;
}
return xhr;
}
var request_url = "http://xxx?apiVersion=2&appID=64&filter=NM&pageSize=&page=&scale=2";
var xhr = createCORSRequest('GET', request_url);
if (!xhr) {
throw new Error('CORS not supported');
}
xhr.send();
服务器端配置。首先apache要安装headers模块。
执行 a2enmod header
然后重启apache 检查是否安装,要进入phpinfo查看 load modules中有无mod_headers
然后在网站的htaccess中添加以下配置
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "http://xxxx"
Header set Access-Control-Allow-Credentials true
</IfModule>
请注意,如果server中返回结果又做了header跳转,这种跳转请求是不被CORS允许的。会报错。
分享到:
相关推荐
HTTP请求代理,CORS跨域请求,HTTPS支持 功能 支持跨域请求(转换不支持跨域请求的接口),并直接启动ajax,fetch 支持HTTPS(解决远程数据接口不支持HTTPS) 用 主机/ {URL} // Copy to the console to run var $...
例如,当用户在Markdown编辑器中插入远程图片时,如果这些图片的源服务器没有启用CORS,图片可能无法显示。此时,"allow-cors-access-control"插件可以帮助用户绕过这一限制,确保图片正常加载。 文件名称"allow-...
Web开发人员需要使用此扩展,这些开发人员需要根据不允许本地CORS请求的远程API测试本地计算机上的UI更改。 在启用此扩展之前,请确保您了解CORS的工作方式...
其次,`ring-cors-0.1.5.jar` 是一个用于Clojure Ring中间件的库,它处理CORS(Cross-Origin Resource Sharing)请求。CORS是一种机制,允许浏览器从不同源(域)加载资源,增强了Web应用的交互性。`ring-cors`...
在处理跨域问题时,由于同源策略的限制,直接加载远程PDF可能会遇到问题。本篇文章将详细介绍如何利用PDFJS和SpringBoot构建一个能够跨域展示远程PDF文件的服务。 首先,理解“跨域”(Cross-Origin)的概念至关...
$.ajax()可以接受一系列参数,其中关键的两个是`url`(指定要请求的远程服务地址)和`dataType`(指定返回数据的类型,如json、xml等)。为了实现跨域,我们需要设置`dataType`为`jsonp`。JSONP(JSON with Padding...
启用后,通过将“ Access-Control-Allow-Origin:*”标头附加到本地和远程Web请求中,不会再出现CORS错误 此扩展通过为浏览器收到的每个请求提供自定义的“ access-control-allow-origin”和“ access-control-allow...
总结,Ajax跨域请求WebService.asmx是一个结合了前端JavaScript异步请求技术和后端C# Web服务交互的实例,它涉及到了跨域策略、HTTP通信、CORS配置以及JSON数据交换等多个Web开发的重要知识点。正确理解和运用这些...
在IT行业中,网络通信是应用程序之间交互的重要方式。当我们谈论跨域请求时,这是一个与Web安全策略相关的概念,主要是浏览器为了...确保正确配置服务器端的CORS策略,以允许来自指定源的跨域请求,从而完成整个流程。
HTML通过AJAX和JSONP跨域请求常用于获取远程API数据、实时更新网页内容、用户认证等场景。例如,社交网站获取用户信息、新闻网站动态加载评论、电子商务网站实时显示库存等。 综上所述,HTML借助AJAX和JSONP,可以...
此外,还可以配置Spring MVC的全局CORS策略,以更安全地管理跨域请求: ```java @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry ...
当我们需要在Asp页面中利用JavaScript来读取远程XML文件时,会涉及到跨域问题,因为出于安全考虑,浏览器默认不允许跨域请求。 首先,让我们详细了解一下XML(eXtensible Markup Language)。XML是一种标记语言,常...
端口代理一个糟糕的 TCP 代理,它将所有请求中继到本地端口到远程服务器。 portproxy -port 8080 -raddr google.com:80将代理localhost:8080上的所有 TCP 请求并...动机此代理的唯一目的是绕过不执行 CORS 的远程 API。
为了解决这个问题,我们可以利用CORS(Cross-Origin Resource Sharing,跨源资源共享)机制,服务器通过设置响应头`Access-Control-Allow-Origin`来允许特定的跨域请求。 在调用WebService接口时,我们首先需要了解...
然而,jQuery提供了一种跨域请求的方法,允许我们绕过这一限制,获取远程服务器的数据。这篇博客将探讨如何使用jQuery实现跨域请求以及如何获取返回值。 首先,我们需要理解什么是跨域请求。跨域请求是指一个域下的...
在描述中提到的解决方案是通过在服务器端建立一个代理,将客户端的请求转发到远程服务器,再将返回的数据传递给客户端。这种方法适用于不支持JSONP或CORS的情况,或者需要处理复杂请求(如POST、PUT等)时。示例中的...
Shelly设备通常可以通过HTTP或HTTPS接口进行远程控制和配置,这可能涉及到跨域请求。例如,你可能有一个运行在某个域名下的Web应用,希望通过JavaScript来控制在不同域名下的Shelly设备。在这种情况下,Shelly设备的...
你可以通过配置你的Java服务器,设置适当的CORS策略,允许PDF.js进行跨域请求。 6. **优化和交互**:你可以进一步定制预览体验,比如添加页码导航、缩放、搜索等功能。pdf.js提供了API来获取和操作PDF页面,实现...