1、'''跨域''' JavaScript出于安全方面的考虑,不允许跨域调用其他页面的对象。但在安全限制的同时也给注入iframe或是ajax应用上带来了不少麻烦。这里把涉及到跨域的一些问题简单地整理一下: 首先什么是跨域,简单地理解就是因为JavaScript同源策略的限制,a.com 域名下的js无法操作b.com或是c.a.com域名下的对象 在跨域问题上,域仅仅是通过URL来识别而不会去尝试判断相同的ip地址对应着两个域或两个域是否在同一个ip上。 解决跨域的方法有几种有兴趣的可以自己网上找下资料,这里用的是windowname方式: 跨域用的两个JS库 原生: http://js.3conline.com/js/common/windowname.js [[BR]] 依赖JQ: http://js.3conline.com/js/common/jQuery.windowName.plugin2.js 区别在于 第一个是原生 js 的 也就不依赖 jq 版本 你用不用 jq 都可以用 第二个是 jq 版本的 windowname 他依赖1.42以下(包括1.42)的 jq 所以高版本就挂了[[BR]] [[BR]]原生库例子: postCORS(url, callback, data, extra)[[BR]] @param url 待提交页面的地址[[BR]] @param callback 回调函数,回传两个参数,data(string) 和 extra(isXhr: boolean)[[BR]] @param data 待提交的键值对[[BR]] @param extra {withCookie: true} 需要 cookie 验证的时候加上该参数,其他情况无需添加[[BR]] 关于跨域携带cookie,接口需要返回响应头 [[BR]] Access-Control-Allow-Credentials:true 以及 Access-Control-Allow-Origin: request.headers['origin'](需要显式指定请求头的 origin 字段) [[BR]]默认的(无需携带cookie)只需要返回 Access-Control-Allow-Origin: * @example postCORS('http://127.0.0.1/action.php', function(data, extra) { $('msg').value += '\n\n' + data; }, { 'key': 'happy', 'v': 'not' }, {withCookie: true,charset: 'req_enc=utf-8'} ); 其他JS库之后再更新...