jsonp

jQuery $ .ajax(),$。post在Firefox中将“OPTIONS”作为REQUEST_METHOD发送

安稳与你 提交于 2020-03-10 18:36:35
遇到麻烦我认为是一个相对简单的jQuery插件... 该插件应该通过ajax从php脚本中获取数据,以向 <select> 添加选项。 ajax请求非常通用: $.ajax({ url: o.url, type: 'post', contentType: "application/x-www-form-urlencoded", data: '{"method":"getStates", "program":"EXPLORE"}', success: function (data, status) { console.log("Success!!"); console.log(data); console.log(status); }, error: function (xhr, desc, err) { console.log(xhr); console.log("Desc: " + desc + "\nErr:" + err); } }); 这似乎在Safari中运行良好。 在Firefox 3.5中,服务器上的 REQUEST_TYPE 始终为“OPTIONS”,并且不显示$ _POST数据。 Apache将请求记录为“OPTIONS”类型: ::1 - - [08/Jul/2009:11:43:27 -0500] "OPTIONS sitecodes.php HTTP/1.1

使用chrome扩展程序及jsonp实现跨域访问

半世苍凉 提交于 2020-03-09 22:55:51
作为跨域访问,很多人都知道,由于同源策略(所谓同源,即域名、协议、端口相同),造成js不能操作非同源的web页面的内容,随着前端的不断发展,使用的不断深入,这也产生了很多的不便。下面,我将通过两种方式进行跨域访问: 1、通过chrome扩展程序: 对于使用chrome浏览器的用户,可以通过此方式方便的进行跨域访问,而且不需要进行后台数据的操作,只需在前端就能进行跨域访问且取得里面你想要的内容,例如当想要取得 http://files.qidian.com/Author6/2877557/46513147.txt 里面内容的时候,就可以使用此方法方便取得。 在这之前,首先得对chrome扩展程序进行简单的配置,从而产生一个属于自己的chrome扩展程序。下面一个简洁步骤: 首先,在桌面,也可以在你任何磁盘里新建一个文件夹,而我则建了个名chrome文件夹,里面最重要的是包含一个manifest.json的文件,详细信息可参阅 http://docs.lmk123.com/getstarted.html ; manifest.json文件内容如下: 其中最重要的是permissions中“http://*/*”,其代表能够运行的网址范围,还有就是content_scripts中的js,其表示需要使用的js文件。 在myOwn.js中代码为:$.get(" http://files

前端面试笔试复习(4)

淺唱寂寞╮ 提交于 2020-03-08 21:00:30
DOM 总结 25、DOM 事件模型是什么? 冒泡和捕获 如果这个元素是被点击的元素,那么捕获不一定在冒泡之前,顺序是由监听顺序决定的。 26、事件委托是什么,有什么好处? 事件委托就是利用 冒泡原理 ,将事件绑定到节点的 父级节点 上,从而触发事件中代码的效果。 事件委托的好处: 1)提高js性能; 2)后续添加的元素同样能触发事件; 代码: var ul = document . querySelector ( 'ul' ) ul . addEventListener ( 'click' , function ( e ) { var el = e . target while ( el . tagName !== 'LI' ) { if ( el === ul ) { el = null break } el = el . parentNode } if ( el ) { console . log ( '你点击了 li 元素' ) } else { console . log ( '你点击的不是 li 元素' ) } } ) 27、移动端的触摸事件了解吗? touchstart、 touchmove、 touchend、 touchcancel 模拟 swipe 事件:记录两次 touchmove 的位置差,如果后一次在前一次的右边,说明向右滑了。 HTTP 复习: 28

跨域问题

那年仲夏 提交于 2020-03-08 20:12:40
转载: https://segmentfault.com/a/1190000000718840 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js 同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问) http://www.cnblogs.com/a.js http://www.a.com/b.js 不同域名 不允许

详解js跨域

≡放荡痞女 提交于 2020-03-08 20:09:25
(P.s. 本文系转载, 点我 阅读原文。) 什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 对于端口和协议的不同,只能通过后台来解决。URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js 同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问) http://www.cnblogs.com/a.js http://www.a.com/b.js 不同域名 不允许

详解js跨域问题

◇◆丶佛笑我妖孽 提交于 2020-03-08 20:06:20
注:本文转载自---- https://segmentfault.com/a/1190000000718840 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 跨域资源共享(CORS) CORS(Cross-Origin Resource Sharing )跨域资源共享,定义了必须在访问跨域资源时,浏览器与服务器应该如何沟通。 CORS 背后的基本思想就是使用自定义的HTTP头部让浏览器与服务器进行沟通,从而决定请求或响应是应该成功还是失败。 <script type="text/javascript"> var xhr = new XMLHttpRequest(); xhr.open("GET", "/trigkit4",true); xhr.send(); </script> 以上的 trigkit4 是相对路径,如果我们要使用 CORS ,相关 Ajax 代码可能如下所示: <script type="text/javascript"> var xhr = new XMLHttpRequest(); xhr.open("GET", "http://segmentfault.com/u/trigkit4/",true); xhr.send(); </script> 代码与之前的区别就在于相对路径换成了其他域的绝对路径,也就是你要跨域访问的接口地址。

详解js跨域问题

三世轮回 提交于 2020-03-08 20:05:18
什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js 同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问) http://www.cnblogs.com/a.js http://www.a.com/b.js 不同域名 不允许 对于端口和协议的不同,只能通过后台来解决。 跨域资源共享(CORS) CORS

详解js跨域

两盒软妹~` 提交于 2020-03-08 20:04:19
什么是跨域? 概念:只要协议、域名、端口有任何一个不同,都被当作是不同的域。 对于端口和协议的不同,只能通过后台来解决。URL 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js https://www.a.com/b.js 同一域名,不同协议 不允许 http://www.a.com/a.js http://70.32.92.74/b.js 域名和域名对应ip 不允许 http://www.a.com/a.js http://script.a.com/b.js 主域相同,子域不同 不允许 http://www.a.com/a.js http://a.com/b.js 同一域名,不同二级域名(同上) 不允许(cookie这种情况下也不允许访问) http://www.cnblogs.com/a.js http://www.a.com/b.js 不同域名 不允许 跨域资源共享(CORS) CORS(Cross

JFinal跨域方法的两种实现

◇◆丶佛笑我妖孽 提交于 2020-03-08 17:15:47
在项目中需要通过ajax方法远程调用其它JFinal服务器的服务,会报出No 'Access-Control-Allow-Origin' header is present on the requested resource错误。浏览器默认不允许跨域 。这里提供两种方法。 正常调用如下: 客户端 $.ajax({ type : "post", url : "http://192.168.0.5/order", data : data, dataType : "json", contentType: "application/x-www-form-urlencoded; charset=UTF-8", async: false, cache: false, success:function(response){ //扩展回调函数 if( callback != null ){ callback(response); } }, error : function() { alert("服务器发生错误"); } }); 服务端 public class OrderController extends Controller { private static Logger log = Logger.getLogger(OrderController.class); public void

一个小例子讲讲jsonp

回眸只為那壹抹淺笑 提交于 2020-03-08 16:14:50
1.何为jsonp(json with padding)   json我们都知道并用过。那么jsonp呢,呃,好像听过,但没用过。很久以来楼主也只是听过这个名词而已。直到今晚楼主看到一篇文章( http://www.cnblogs.com/twobin/p/3395086.html ),然后决定探究一下什么是jsonp。   我们都知道js文件是不能跨域操作内容的,这在js里面叫做‘同源策略’,意即js文件只能操作 相同域名、相同端口、相同协议的html文档。但同时我们知道 浏览器允许跨源请求<script>资源,例如 可以通过指定<script>标签的src属性去请求其它域名的js文件,例如我们常常如此引用jquery文件,<script src = ' code.jquery.com/ jquery - latest . min.js '></script>,然后我们就能使用jquery里的方法来任意操作我们html文档里的内容了。   嗯,jsonp就是利用这一原理实现的跨域访问数据 。说白了,其实jsonp技术本质上就是创建<script>标签,并把其src指向跨域地址而实现跨域获取数据。通常的做法就是, 异步请求跨域的服务器端时,不直接返回数据而是返回一个js方法调用,将真正的数据作为该js方法调用的参数传过来。 2.jsonp实例   原理不多说