环境:

win7_x64旗舰版、Google Chrome-v44.0.2403.155、node-v0.10.29、express-v3.2.5、jQuery-v1.8.3

一、跨域GET:

客户端添加jQuery扩展函数getJSONP

$.getJSONP = function (url, data, callback) {
  $.getJSON(url + "?callback=?", data, callback);
};

调用:

$.getJSONP("www.xxx.com/test", {name1: param1, name2: param2}, function(data, status) {});

二、跨域POST:

客户端添加jQuery扩展函数postJSONP

$.postJSONP = function (url, data, callback) {
$.ajax({
type: "POST",
url: url,
data: d ata,
success: callback,
xhrFields: { withCredentials: true }, //将withCredentials属性设置为true,可以指定请求应该发送凭据(cookie、HTTP认证及客户端SSL证明等)
crossDomain: true
});
};

服务端添加响应函数:

router.post("/test", function (req, res) {
res.setHeader("Access-Control-Allow-Credentials", true);
if (req.headers.origin != undefined) {
res.setHeader("Access-Control-Allow-Origin", req.headers.origin);
}
res.jsonp(result);
//如果客户端不能接收返回数据,我们可以添加一个返回页面(login_result.html),并传递参数("status=true"),在返回的页面中添加js函数执行
  //res.redirect("./../login_result.html?status=true");
}

调用:

$.postJSONP("www.xxx.com/test", {name1: param1, name2: param2}, function(data, status) {});

三、跨域登录:

在html中添加

<iframe id="login" src="" style="display: none"></iframe>

在文档加载完成后,向跨域登录地址请求登录,登录成功后会获得Cookies

var param = document.location.search.substr(1); // 从当前页面获取登录信息,然后提交给跨域登陆地址
$("#login").attr("src", "www.xxx.com/login.html?"+ param);

最后:

在express-v3.2.5中,我们可以这样使用路由中间件app.use("/xxx", router.middleware),而在express-v4.x.x中z直接app.use("/xxx", router)就可以了。

web跨域问题的更多相关文章

  1. web跨域访问,session丢失的问题

    web跨域访问,session丢失的问题25 http://www.iteye.com/problems/71265 http://www.iteye.com/topic/264079 具体情况如下: ...

  2. Web跨浏览器进程通信(Web跨域)

    Web跨域已是老生常谈的话题,这次来尝试下跨域浏览器进程之间的通信 —— 这在过去基本依靠网络中转实现   在之前一篇文章里尝试了跨浏览器的数据共享,最后提到使用LocalConnection还可以实 ...

  3. web跨域及cookie相关知识总结

    原文:web跨域及cookie相关知识总结   之前对于跨域相关的知识一致都很零碎,正好现在的代码中用到了跨域相关的,现在来对这些知识做一个汇总整理,方便自己查看,说不定也可能对你有所帮助. 本篇主要 ...

  4. web跨域问题回顾

    晚上看spring web源码时看到了cors包,查了一下原来是在4.2之后新加的用来更方便让web应用服务支持cors协议的.于是有了下面几个问题. web跨域问题的起源是因为浏览器为了安全而遵循的 ...

  5. Web跨域问题总结

    一.跨域问题的由来为了防止某些文档或脚本加载别的域下的未知内容造成泄露隐私,破坏系统等安全行为,1995年, Netscape 公司在浏览器中引入同源策略/SOP(Same origin policy ...

  6. web跨域解决方案

    阅读目录 什么是跨域 常用的几种跨域处理方法: 跨域的原理解析及实现方法 总结 摘要:跨域问题,无论是面试还是平时的工作中,都会遇到,本文总结处理跨域问题的几种方法以及其原理,也让自己搞懂这方面的知识 ...

  7. cors解决Web跨域访问问题

    首先了解一下什么是跨域以及解决的几种常见方式. 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器施加的安全限制. 所谓同源是指,域名,协议,端口均相同. 举例: 相对于 ...

  8. web跨域问题(No 'Access-Control-Allow-Origin'..)

    1. 问题 angular开发中连接java服务时出现跨域问题(No 'Access-Control-Allow-Origin'..). 如下图 解决方法 2,原因分析 这个与安全机制有关,默认情况下 ...

  9. Web 跨域请求(OCRS) 前端解决方案

    1.同源策略如下: URL 说明 是否允许通信 http://www.a.com/a.jshttp://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.j ...

  10. java web 跨域

    服务器端解决跨域问题的三种方法   跨域是指html文件所在的服务器与ajax请求的服务器是不同的ip+port,例如: - ‘192.168.1.1:8080’ 与 ‘192.168.1.2:808 ...

随机推荐

  1. xcode常见错误

    ------------------------------------------错误列表----------------------------------------------   1.Ter ...

  2. 阿里云-对象储存OSS

    最近 需要搞一个阿里云的文件上传 手机端主要做了图片上传 pod安装:pod 'AliyunOSSiOS', '~> 2.5.2' 主要就是需要四个参数:accessKey secretKey  ...

  3. wpf 控件截屏

    /// <summary> /// 保存截图 /// </summary> /// <param name="ui">控件名称</para ...

  4. YII2.0 数据库增删改查

    /*==================== dkhBaseModel 数据库增删改查方法 start ================================*/ //新增一条数据 publ ...

  5. Asp.net MVC 单元测试 简要笔记

    首先要啰嗦几句. 单元测试是TDD的重要实践方法,也是代码质量的一种保证手段.在项目的工程化开发中,研发人员应该尽量保证书写Unit Test,即使不使用TDD. (VS中,我们可以直接使用微软提供的 ...

  6. C#中ref和out的区别浅析

    这篇文章主要介绍了C#中ref和out的区别浅析,当一个方法需要返回多个值的时候,就需要用到ref和out,那么这两个方法区别在哪儿呢,需要的朋友可以参考下   在C#中通过使用方法来获取返回值时,通 ...

  7. OGG强制停止进程

    1.异常现象[oracle@localhost ~]$ ggsci Oracle GoldenGate Command Interpreter for OracleVersion 11.1.1.0.0 ...

  8. 注册表中LEGACY残留项的清理技巧

    http://bbs.kafan.cn/thread-889517-1-1.html 注册表中LEGACY残留项的清理技巧 2.Windows Vista系统 Windows XP系统下的修改权限的方 ...

  9. 4、js内置函数

    前言:上一篇我介绍了函数的基本概念,和一些简单的Demo.其实很多函数是js内置的,我们无需自己去写,直接拿过来用即可.内置函数分为全局函数和js内置对象的函数区别:全局函数不属于任何一个内置对象.理 ...

  10. JS学习之路,之弹性运动框架

    弹性运动:顾名思义,就如同物理中的加速减速运动,当开始时速度过大,到达终点时,速度不会立刻停下,而是再前进一段距离,而后再向相反方向运动,如此往复. var timer=null; var speed ...