Ajax实现跨域访问最新解决方案
在实际项目当中,我们经常会遇到同一个域名下不同项目之间通过Ajax相互调用数据,这样问题就来了,如何通过Ajax实现跨域呢?
解决方案
1.Jsonp
Jsonp解决跨域相对简单,服务器无需任何配置。具体实现如下:
$.ajax({ type: 'get', url: 'http://xxx.com', data: {}, dataType: 'jsonp', success: function (data) { }, error: function (data) { mask.close(); toast('请求失败'); } });
2.CORS
CORS解决方案需要前端和服务端共同配置才能实现
前端
$.ajax({ url: 'http://xxx.com', type: 'post', xhrFields:{ withCredentials:true }, data: {}, success: function(res){ }, error: function(){ alert('服务器发生错误!'); } });
服务端(在程序入口文件配置)
header('Access-Control-Allow-Origin: http://xxx.com'); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept');
总结
以上所述是小编给大家介绍的Ajax实现跨域访问最新解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
关于C#中ajax跨域访问问题
最近因项目需要,需要跨域请求访问数据.跨域访问是指什么? [跨域]:指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制.所谓同域是指,域名,协议,端口均相同,不明白没关系,举个栗子:例如,我的电脑上有2个服务器 192.168.0.11和192.168.0.12.如果第一个服务器上的页面要访问第二个服务器上面的数据,就叫做跨域.或者http://www.baidu.com 要访问http://www.xxx.com也是不同域名也是跨域.
-
ajax跨域访问遇到的问题及解决方案
Ajax请求一个目标地址为非本域(协议.域名.端口任意一个不同)的web资源,并根据响应获得外部应用数据.比如我们用Ajax访问城市天气预报.IP地址等公共服务接口时,就涉及跨域了.我们请求一个外部服务时,浏览器会基于安全问题拒绝授权访问. 而script.script.iframe标签的src属性就不存在跨域的问题,所以Ajax跨域就是利用这一点以及js对JSON的支持,外部服务只要给Ajax的请求响应一段JS代码或JSON数据,就能被Ajax获取到. 由于安全方面的原因, 客户端js使用xm
-
Ajax跨域访问Cookie丢失问题的解决方法
ajax跨域访问,可以使用jsonp方法或设置Access-Control-Allow-Origin实现,关于设置Access-Control-Allow-Origin实现跨域访问可以参考之前我写的文章<ajax 设置Access-Control-Allow-Origin实现跨域访问> 1.ajax跨域访问,cookie丢失 首先创建两个测试域名 a.fdipzone.com 作为客户端域名 b.fdipzone.com 作为服务端域名 测试代码 setcookie.PHP 用于设置服务端co
-
浅谈JQuery+ajax+jsonp 跨域访问
Jsonp(JSON with Padding)是资料格式 json 的一种"使用模式",可以让网页从别的网域获取资料. 一. 客户端 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv=&q
-
Ajax 设置Access-Control-Allow-Origin实现跨域访问
ajax跨域访问是一个老问题了,解决方法很多,比较常用的是JSONP方法,JSONP方法是一种非官方方法,而且这种方法只支持GET方式,不如POST方式安全. 即使使用jQuery的jsonp方法,type设为POST,也会自动变为GET. 官方问题说明: "script": Evaluates the response as JavaScript and returns it as plain text. Disables caching by appending a query s
-
详解Django解决ajax跨域访问问题
这篇文章主要给大家介绍了关于Django跨域请求问题解决的相关资料,文中介绍的实现方法包括:使用django-cors-headers全局控制.使用JsonP,只能用于Get方法以及在views.py里设置响应头,只能控制单个接口,需要的朋友可以参考下. 使用Django在服务器端写了一个API,返回一个JSON数据.使用Ajax调用该API: 但是,Chrome浏览器提示错误: No 'Access-Control-Allow-Origin' header is present on the
-
ajax跨域访问报错501的解决方法
问题:ajax跨域访问报错501 运行下面的代码会报错501 $.ajax({ type: "POST", url: "http://192.168.1.202/sensordata.php", contentType:'application/json; charset=utf-8', data: JSON.stringify(ajaxPostData), dataType:'json', success: function(data){ //On ajax su
-
Ajax实现跨域访问最新解决方案
在实际项目当中,我们经常会遇到同一个域名下不同项目之间通过Ajax相互调用数据,这样问题就来了,如何通过Ajax实现跨域呢? 解决方案 1.Jsonp Jsonp解决跨域相对简单,服务器无需任何配置.具体实现如下: $.ajax({ type: 'get', url: 'http://xxx.com', data: {}, dataType: 'jsonp', success: function (data) { }, error: function (data) { mask.close();
-
AJAX的跨域访问-两种有效的解决方法介绍
新的W3C策略实现了HTTP跨域访问,还亏我找了很久的资料解决这个问题:只需要在servlet中返回的头部信息中添加Access-Control-Allow-Origin这个既可.比如我要开放所有我本地的跨域访问,就设置如下:response.setHeader("Access-Control-Allow-Origin", "http://127.0.0.1/*");这样我本地的A工程中的AJAX请求就可以跨域请求B工程中的servlet.代码如下:HTML的JS的
-
Ajax实现跨域访问的三种方法
一.什么是跨域 我们先回顾一下域名地址的组成: http:// www . google : 8080 / script/jquery.js http:// (协议号) www (子域名) google (主域名) 8080 (端口号) script/jquery.js (请求的地址) * 当协议.子域名.主域名.端口号中任意一各不相同时,都算不同的"域". * 不同的域之间相互请求资源,就叫"跨域". 比如:http://www.abc.com/index.
-
JQuery Ajax 跨域访问的解决方案
具体情况有: 一.本域和子域的相互访问: http://www.aa.com/和book.aa.com 二.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 iframe 三.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 XMLHttpRequest访问代理 四.本域和其他域的相互访问: http://www.aa.com/和http://www.bb.com/ 用 JS创建动态脚
-
AJAX的跨域问题解决方案
目录 跨域的概述 区别同源与不同源 同源策略有什么用? AJAX跨域解决方案 方案一.设置响应头 方案二.jsonp 方案三.代理机制(httpclient) 总结 跨域的概述 跨域是指从一个域名的网页去请求另一个域名的资源.比如从百度(https://baidu.com)页面去请求京东(https://www.jd.com)的资源. 通过超链接.form表单提交.window.location.href.document.location.href.script标签.img标签等方式进行跨域是
-
Python的Django应用程序解决AJAX跨域访问问题的方法
引子 使用Django在服务器端写了一个API,返回一个JSON数据.使用Ajax调用该API: <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width
-
AJax与Jsonp跨域访问问题小结
####JavaScript的AJax AJAX即"Asynchronous Javascript And XML"(异步JavaScript和XML) 设计AJax使用的一种重要技术是XMLHttpRequest对象. 创建XMLHttpRequest对象的方式: xmlhttp = new ActiveObject("Microsoft.XMLHTTP"); // IE浏览器支持的创建方式 xmlhttp = new XMLHTTPRequest(); // F
随机推荐
- jQuery判断checkbox是否选中的3种方法
- VMware虚拟机安装的CentOS无法上网的解决方法
- iOS模糊效果的实现方法
- asp.net 日期函数 某月的第一天和最后一天的日期
- C#操作mysql数据库的代码实例
- Session的工作机制详解和安全性问题(PHP实例讲解)
- 详解python之简单主机批量管理工具
- go和python变量赋值遇到的一个问题
- 简要介绍C++编程中的友元函数和友元类
- Mysql错误1366 - Incorrect integer value解决方法
- Android获取监听SD卡状态
- 数据库设计经验谈
- linux下安装Squid代理的详细配置教程
- VBScript 作用 简单说明
- Spring Boot 日志配置方法(超详细)
- 按钮接受回车事件的三种实现方法
- 微信小程序 数组(增,删,改,查)等操作实例详解
- 绑定winform中DataGrid
- iOS APP签名机制原理详解
- python tkinter组件使用详解