jquery ajax 跨域跨域访问怎么修改header中的referer的值

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 string parameter, “_=[TIMESTAMP]“, to the URL unless the cache option is set to true.Note: This will turn POSTs
into GETs for remote-domain requests.
如果跨域使用POST方式,可以使用创建一个隐藏的iframe来实现,与ajax上传图片原理一样,但这样会比较麻烦。
因此,通过设置Access-Control-Allow-Origin来实现跨域访问比较简单。
例如:客户端的域名是,而请求的域名是
如果直接使用ajax访问,会有以下错误
XMLHttpRequest cannot load /server.php. No 'Access-Control-Allow-Origin' header is present on the requested resource.Origin '' is therefore not allowed access.
在被请求的Response header中加入
就可以实现ajax POST跨域访问了。
代码如下:
client.html&路径:/client.html
server.php&路径:/server.php
Access-Control-Allow-Origin:*&表示允许任何域名跨域访问
如果需要指定某域名才允许跨域访问,只需把Access-Control-Allow-Origin:*改为Access-Control-Allow-Origin:允许的域名
例如:header('Access-Control-Allow-Origin:');
如果需要设置多个域名允许访问,这里需要用php处理一下
可以跨域访问
server.php 修改为
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:376次
排名:千里之外jquery/js的ajax跨域访问说明 - 前端开发 - IT工作生活这点事
现在位置 /
给您更多信息和帮助
在这里您可以找到更多: 技术交流群:
投稿:suchso@承接:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/业务咨询
蒙山全蝎酒
推荐使用阿里云服务器
echarts教程系列
[] [] [] [] [] [] [] [] []
本月最热文章
微信扫一扫,徜徉悠嘻网,您的休闲乐园
技术交流群:
投稿:suchso@
专业专注:企业网站门户/微网站/微商城/CMS系统/微信公众号运营/付费问题咨询关于jquery中ajax跨域请求外网数据的实现方法 - jQuery - jQuery教程 - 天使建站
当前位置:&&&
关于jquery中ajax跨域请求外网数据的实现方法
这里站长和大家探讨一下jquery跨域请求外网数据的方法,站长用了有差不多俩个小时的时间在网上到处找相关的教程和资料,自己也测试摸索了半天,根本就没有什么实际性的效果,还是站长原来的方法比较实用,网上大多的方法也都是这个思路,不同的只是语言不一样矣。站长要使用这个功能,是因为发现了淘宝的一个IP的API接口,可以很轻松的获取ip的实际地址,接口如下:/service/getIpInfo.php?ip=222.140.98.151按照一般的思路,用jquery里的get、post、或者ajax应该都能直接调用的,所以站长测试了下面的代码:$.get(&/service/getIpInfo.php?ip=222.140.98.151&,function(d){alert(d)});
url:&/service/getIpInfo.php?ip=222.140.98.151&,
type:&get&,
success:function(d){alert(d);}
});另外网上还说的什么返回的是json数据,要弄成Json,站长也测试了半天,但都是不行,也不报错,就是没反应,所以看到这篇文章的朋友们,肯定也是遇到和站长相同的问题,站长在这里劝大家不要浪费时间了,直接用jquery跨域获取外网数据是基本上行不通的,还是用下面站长的方法吧。站长用的方法的原理就是用ASP或者PHP来读取外网的数据,然后用jquery的ajax来访问自己网站内的这个asp文件或者php文件,下面是具体的代码:$.getScript(&.cn/ip&,function(){//读取新浪的IP接口,来获取客户端的IP
var ip=ILData[0];
type:'GET',
url:'/angel/get.asp?ip='+ip,//这个页面是就是本站内的读取外网数据的页面了,下面有这个页面的源码
success:function(d){
var d=$.parseJSON(d);//返回的是json数据,下面的是把相关的记录保存到cookie里。
$.cookie(&loginip&,d.data.ip,{path:'/',expires:1});
$.cookie(&logindressP&,d.data.region,{path:'/',expires:1});
$.cookie(&loginisp&,d.data.isp,{path:'/',expires:1});
$.cookie(&logindressS&,shi,{path:'/',expires:1});
});下面来看本站的获取外网数据的get.asp文件的源码:&%
dim con,ip
ip=SafeRequest(&ip&)
con=GetHttpPage(&/service/getIpInfo.php?ip=&&ip,&GB2312&)
response.write con
本文&关于jquery中ajax跨域请求外网数据的实现方法&的内容摘要为:关于jquery中ajax跨域请求外网数据的实现方法&&由天使建站[]首发,转载请说明!
其他用户阅读&关于jquery中ajax跨域请求外网数据的实现方法&的同时也阅读了:
[:107]& []
[:196]& []
[:106]& []
[:211]& []
[:764]& []
[:115]& []
[:683]& []
与&关于jquery中ajax跨域请求外网数据的实现方法&同栏目下的站长推荐阅读:
[:655]& []
[:567]& []
[:657]& []
与&jQuery实例&相关的栏目
与&jQuery实例&相关的专题
& & & & & & & & & &
热点文章推荐
& & & & & & & & & & & & & & & & & & & &
如果您需要建设网站、WEB程序定制或者现有网站改版,可以联系QQ:
天使建站 非常感谢您的到来!希望本站能对您有所帮助!
天使建站为您提供ASP、PHP、js、jquery、ajax等与网站开发相关的教程,实例与源码下载,打造最专业的站长交流和学习的免费平台
豫ICP备号-1 版权所有&
最后更新时间:跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一。
  和大多数跨域的解决方案一样,JSONP也是我的选择,可是某天PM的需求变了,某功能需要改成支持POST,因为传输的数据量比较大,GET形式搞不定。所以折腾了下闻名已久的
CORS(跨域资源共享,Cross-Origin Resource Sharing
),这边文章也就是折腾期间的小记与总结。
CORS能做什么:
正常使用AJAX会需要正常考虑跨域问题,所以伟大的程序员们又折腾出了一系列跨域问题的解决方案,如JSONP、flash、ifame、xhr2等等。
本文介绍的CORS就是一套AJAX跨域问题的解决方案。
CORS的原理:
CORS定义一种跨域访问的机制,可以让AJAX实现跨域访问。CORS 允许一个域上的网络应用向另一个域提交跨域 AJAX 请求。实现此功能非常简单,只需由服务器发送一个响应标头即可。
CORS浏览器支持情况如下图:
  喜闻乐见、普大喜奔的支持情况,尤其是在
移动终端上,除了opera Mini;
  PC上的现代浏览器都能友好的支持,除了IE9-,不过前端工程师对这种情况早应该习惯了...
  假设我们页面或者应用已在
上了,而我们打算从
请求提取数据。一般情况下,如果我们直接使用 AJAX 来请求将会失败,浏览器也会返回“源不匹配”的错误,&
跨域&也就以此由来。
  利用 CORS, 只需添加一个标头,就可以允许来自
的请求,下图是我在PHP中的 hander() 设置,
“*”号表示允许任何域向我们的服务端提交请求:
也可以设置指定的域名,如域名
,那么就允许来自这个域名的请求:
  当前我设置的header为“*”,任意一个请求过来之后服务端我们都可以进行处理&响应,那么在调试工具中可以看到其头信息设置,其中见红框中有一项信息是“
Access-Control-Allow-Origin:* ”,表示我们已经启用CORS,如下图。
  PS:由于demo都在我厂的两台测试机间完成,外网也不能访问,所以在这就不提供demo了,见谅
  简单的一个header设置,一个支持跨域&POST请求的server就完成了:)
  当然,如果没有开启CORS必定失败的啦,如下图:
刚刚说到的兼容性。CORS是W3C中一项较新的方案,所以部分浏览器还没有对其进行支持或者完美支持,详情可移至
安全问题。CORS提供了一种跨域请求方案,但没有为安全访问提供足够的保障机制,如果你需要信息的绝对安全,不要依赖CORS当中的权限制度,应当使用更多其它的措施来保障,比如OAuth2。
  自认为的cors使用场景:
cors在移动终端支持的不错,可以考虑在移动端全面尝试;PC上有不兼容和没有完美支持,所以小心踩坑。当然浏览器兼容就是个伪命题,说不准某个浏览器的某个版本就完美兼容了,说不准就有点小坑,尼玛伤不起!~
jsonp是get形式,承载的信息量有限,所以信息量较大时CORS是不二选择;
配合新的JSAPI(fileapi、xhr2等)一起使用,实现强大的新体验功能。
总结的不错,就拿过来了。
转载自: /Darren_code/p/cors.html
相关 [ajax post cors] 推荐:
- JavaScript - Web前端 - ITeye博客
跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的内容),因为我们在日常的项目开发时会不可避免的需要进行跨域操作,所以跨域能力也算是前端工程师的基本功之一.   和大多数跨域的解决方案一样,JSONP也是我的选择,可是某天PM的需求变了,某功能需要改成支持POST,因为传输的数据量比较大,GET形式搞不定.
- CSDN博客推荐文章
在使用jquery的$.ajax()
$.post() $.getJSON() 等ajax方法时,难免会有用到中文参数的问题,在后台接收的中文参数是乱码,解决方法如下:.     dataType : ‘json’     ,type : ‘POST’     ,url : ‘http://localhost/test/test.do’     ,data : {id: 1, type: ‘商品’}     ,success : function(data){             } } );.
- 博客园_首页
在没有出现jquery前,是通过纯手工的方式获取XmlHttpRequest对象来向服务器发送异步请求实现局部刷新. 在jquery出现以后我们利用其封装好的对象来实现ajax请求,下面以post请求为例作一个简单介绍:. jQuery.post(url,
[callback],
[type]),其中url为请求地址,data为待发送的参数及其值,callback为发送成功时的回调函数,type为返回内容的类型(xml、html、text、json等).
- 行业应用 - ITeye博客
HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体中. 通过chrome的开发者工具可以看到如下(这里是可读的形式,不是真正的HTTP请求协议的请求格式):.
- CSDN博客推荐文章
Ajax(Asynchronous JavaScript and XMLS异步JavaScript和XML)(“阿贾克斯”)技术. 完成页面的局部刷新,从而提升操作性能. AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术. 依赖的核心对象:XMLHttpRequest.
- Web前端 - ITeye博客
对象是ajax的基础,几乎所有的浏览器都支持他,只是创建方式不同,如IE5,IE6. 2、AJAX - 向服务器发送请求请求. 与 POST 相比,GET 更简单也更快,并且在大部分情况下都能用. 然而,在以下情况中,请使用 POST 请求:. 无法使用缓存文件(更新服务器上的文件或数据库). 向服务器发送大量数据(POST 没有数据量限制).
- Web前端 - ITeye博客
对于iframe默认get提交 需要进行post数据的大量提交,给找到外国网站的简单例子如:
&form action=&iframe.php& target=&my-iframe& method=&post&&. &iframe name=&my-iframe& src=&iframe.php&&&/iframe&
因为我项目用到的是 页面用的tab 样式(如何实现tab样式切换这里不做说明),嵌入的是三个页面iframe,需要在切换的时候更改target指定iframe名字,为了验证是否可行,只好试下,不然无别的办法.
- jin - Yining.write()
在推特上抱怨面试时问HTTP GETE和POST的区别得到回答都不满意,有人不清楚,当时只回复了看 RFC2616. 面试时得到的回答大多是:POST是安全的,因为被提交的数据看不到,或者被加密的,其它的还有GET的时候中文出现乱码(在地址栏里),数据最大长度限制等等. 说 POST 比 GET 安全肯定是错的,POST跟GET都是明文传输,用httpfox等插件,或者像WireShark 等类似工具就能观察到.
- never-online - CNode社区
浅谈HTTP中Get与Post的区别. 其中请求报文中的开始行和首部行包含了常见的各种信息,比如http协议版本,方法(GET/POST),accept-language,cookie等等. 而’实体主体’一般在post中使用,比如我们用表单上传文件,文件数据就是在这个’实体主体’当中. 写这篇教程的起因是因为在学习nodejs的过程中,想要自己实现一些文件上传的功能,于是不得不去研究POST.
- 博客园_首页
上个月,博客园精华区有篇文章《
GET 和 POST 有什么区别. 及为什么网上的多数答案都是错的 》,文中和回复多是对以下两个问题进行了深究:. 在我看来这两者都不是重点,特写此文予以讨论. GET、POST 专业名称是 HTTP Request Methods. 但 HTTP Request Methods 不只是 GET 和 POST,完整列表如下:.
坚持分享优质有趣的原创文章,并保留作者信息和版权声明,任何问题请联系:@。如何修改http头里的HTTP_REFERER
[问题点数:50分,结帖人i777]
如何修改http头里的HTTP_REFERER
[问题点数:50分,结帖人i777]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2006年2月 PHP大版内专家分月排行榜第三
2006年2月 PHP大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 ajax 跨域 header 的文章

 

随机推荐