JavaScript跨域提交数据

1.通过jsonp跨域

   场景:假设前台有JS方法"crossJS",

  1.1发送请求http://www.xxx.com/?callback=crossJS。(创建一个script标签,请求该地址)

1.2后台服务器,返回数据格如crossJS({"a":"b"});

优点:开发、维护简单

缺点:每次可提交数据大小受get方式限制

2.使用HTML5中新引进的window.postMessage方法来跨域传送数据

  场景:

页面http://www.aaa.com/A.html:

<html>
<body>
<input type="text" id="txt"/>
<button onclick="fnSend()">发送</button>
<iframe id="ifr" src="http://192.168.127.39:82/b.html"></iframe>
</body>
<script type="text/javascript">
    function fnSend(){
        var ifr = document.getElementById("ifr");
        var win = ifr.contentWindow;
        var txt = document.getElementById("txt");
        win.postMessage(‘{"msg":"‘ + txt.value + ‘"}‘,"http://192.168.127.39:82");
    }
</script>
</html>

页面http://www.bbb.com/B.html:

B页面,接收结果
<ul id="msg"></ul>
<script type="text/javascript">
 window.onmessage = function(msg){
    msg = msg.data||{};
    console.log(msg);
    msg = JSON.parse(msg);

    var ul = document.getElementById("msg");
    var li = document.createElement("li");;
    li.innerHTML = msg.msg;
    ul.appendChild(li);
 }
</script>

优点:可以提交数据量大。

缺点:1.页面http://www.aaa.com/A.html,不可以直接提交数据到http://www.bbb.com/站点服务器,只能通过http://www.bbb.com/B.html页面中转

     2.维护麻烦,需要两个站点的页面都同时修改。

3.使用Flush方法来跨域传送数据

  转载   http://zyan.cc/ajaxcdr/#entrymore

   详情见demo:  http://files.cnblogs.com/files/you000/ajaxcdr-1.0.zip

时间: 2024-10-20 14:35:06

JavaScript跨域提交数据的相关文章

代替jquery $.post 跨域提交数据的N种形式

跨域的N种形式: 1.直接用jquery中$.getJSON进行跨域提交 优点:有返回值,可直接跨域: 缺点:数据量小: 提交方式:仅get (无$.postJSON) $.getJSON("http://www.sendnet.cn/?callback=?" , { UserId: 1001 }, function (data) { alert(data.info); }); $.ajax({ type: "Get", url: "http://www.

ajax 跨域提交数据

$.ajax({ url:"http://my.demo.com/jsonp/server.php",//不同域的文件; cache: false, //是否使用缓存; error: function () { }, //错误时执行的方法; jsonp: "callback", //跨域必填参数,回调函数名,对应服务器文件中$_GET['callback']; dataType: "jsonp", // 跨域必填参数,声明jsonp 传输; su

html Js跨域提交数据

MVC实现方式: [ActionAllowOrigin][HttpPost]public JsonResult Cooperation() { return json(); } 在方法前面加上[ActionAllowOrigin] 这个方法是自定义的继承自AuthorizeAttribute public class ActionAllowOriginAttribute : AuthorizeAttribute { public override void OnAuthorization(Sys

CORS 跨域 node |XMLHttpRequest 跨域提交数据 node

node服务端 app.post('/getdata',function(req,res,next){ req.setEncoding('utf8'); res.setHeader('Access-Control-Allow-Origin','*') req.on('data',function(str){ var json = JSON.parse(str||"{}") ; console.log(json) }) res.end('already get data') }) scr

使用jQuery实现跨域提交表单数据

我们在WEB开发中有时会遇到这种情况,比如要从A网站收集用户信息,提交给B网站处理,这个时候就会涉及到跨域提交数据的问题.本文将给您介绍如何使用jQuery来实现异步跨域提交表单数据. 在jQuery中,我们使用json数据类型,通过getJSON方法来实现从服务端获取或发送数据,而当要向不同远程服务器端提交或者获取数据时,要采用jsonp数据类型.使用这种类型的话,会创建一个查询字符串参数 callback=? ,这个参数会加在请求的URL后面.服务器端应当在JSON数据前加上回调函数名,以便

使用iframe实现同域跨站提交数据

有一个已经编译的asp.net 1.1的网站.为了改进录入的效率,改为由barcode扫描枪来替代手动.由于在扫描枪添加其它信息.原录入窗口已经无法适应.另外程序虽然跑的是存储过程,但交易的transaction是写在程序中.Insus.NET只好使用iframe来传入数据,并能执行原网页的铵钮事件. 下面一张图片让你明白使用iframe同域跨站提交数据,以一个最通俗的登录来作例子.源录入路径:http://i1.company.com/Pb.aspx.现在只写一个新站点新网页:http://i

JavaScript跨域

JavaScript跨域 js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性.也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同.这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作. URL 说明 是否允许通信 http://www.a.com/a.jsh

JavaScript 跨域漫游

前言: 最近在公司做了几个项目都涉及到了iframe,也就是在这些iframe多次嵌套的项目中,我发现之前对iframe的认识还是比较不足的,所以就静下心来,好好整理总结了iframe的相关知识:<Iframe 功能详解>. 在做公司项目的过程中,让我纠结之一的就是iframe的跨域问题,在网上查到的资料,基本都是给个思路,加个DEMO,也没有完整的解决方案.所以这里我结合公司的项目实际需求,从新整理了一下javaScript跨域的相关方法. PS:请转载的童鞋,请注明出处 ... 目录: 一

js day44 Jquery(筛选,事件,效果,Ajax,javascript跨域)

1     筛选[掌握]     筛选与之前"选择器"雷同,筛选提供函数 1.1   过滤 eq(index|-index),获取第N个元素 ?index:一个整数,指示元素基于0的位置,这个元素的位置是从0算起. ?-index:一个整数,指示元素的位置,从集合中的最后一个元素开始倒数.(1算起) first(),获取第一个元素 last(),获取最后个元素 hasClass(class),检查当前的元素是否含有某个特定的类,如果有,则返回true. filter(exp