跨域的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.sendnet.cn/?UserId=1001",
cache: false,
error: function () { },
jsonp: "callback",
dataType: "jsonp",
success: function (result) {
alert(result.info);
}
});

2.在页面中嵌入一个iframe,把iframe的宽和高设置为0进行跨域提交

优点:可直接跨域;

缺点:无返回值(脱离ajax本质);

提交方式:get/post

使用隐藏的iframe来提交表单
1,在页面中嵌入一个iframe,把iframe的宽和高设置为0
2.在iframe的里面里设置一个from的表单,表单的内容就是真正要提交的表单内容。
3.当点击按钮的时候是iframe里的表单提交。 <form id="form2" name="form2" method="post" action="a,jsp" enctype="multipart/form-data">
<input name="option_13412" id="option_13412" type="text"/>
<input name="option_13413" id="option_13413" type="text"/>
<input name="option_13414" id="option_13414" type="text"/>
<input name="option_13415" id="option_13415" type="text"/>
</form> 使用jquery来啊操作iframe中的表单元素
$(window.frames["iframe1"].document).find("#option_13412").val(name);
$(window.frames["iframe1"].document).find("#option_13413").val(phone);
$(window.frames["iframe1"].document).find("#option_13415").val(content); 通过按钮来提交iframe里的表单
$(window.frames["iframe1"].document).find("#form2").submit();

3.直接用$.post跨域,先提交到本地域名下一个代理程序,通过代理程序向目的域名进行post或get提交,并根据目的域名的返回值通过代理 程序返回给本地页面

优点:有返回值,可直接跨域,可通过 代理程序 统计ip等用户信息,增加安全性;

提交方式:get/post

复杂度:需要前端工程师和后端工程师配合(php/Java../工程师)

缺点:需要消耗本地服务器资源,增加ajax等待时间(可忽略)

4.向百度学习的思路:由于调用任何js文件不涉及跨域问题,所以js脚本中可以编写调用远程服务器上的js文件,该文件实现你需要的业务。

即a.js动态调用www.baidu.com/b.js ,其中b.js实现业务

5.待研究…………

代替jquery $.post 跨域提交数据的N种形式的更多相关文章

  1. JavaScript跨域提交数据

    1.通过jsonp跨域    场景:假设前台有JS方法"crossJS", 1.1发送请求http://www.xxx.com/?callback=crossJS.(创建一个scr ...

  2. js跨域请求数据的3种常用的方法

    由于js同源策略的影响,当在某一域名下请求其他域名,或者同一域名,不同端口下的url时,就会变成不被允许的跨域请求.那这个时候通常怎么解决呢,对此菜鸟光头我稍作了整理:1.JavaScript   在 ...

  3. ajax 跨域提交数据

    $.ajax({ url:"http://my.demo.com/jsonp/server.php",//不同域的文件; cache: false, //是否使用缓存; error ...

  4. html Js跨域提交数据方法,跨域提交数据后台获取不到数据

    MVC实现方式:(后台获取不到方法请参考下面js) [ActionAllowOrigin][HttpPost]public JsonResult Cooperation() { return json ...

  5. jQuery中通过JSONP来跨域获取数据的三种方式

    第一种方法是在ajax函数中设置dataType为'jsonp' $.ajax({ dataType: 'jsonp', url: 'http://www.a.com/user?id=123', su ...

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

    node服务端 app.post('/getdata',function(req,res,next){ req.setEncoding('utf8'); res.setHeader('Access-C ...

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

    我们在WEB开发中有时会遇到这种情况,比如要从A网站收集用户信息,提交给B网站处理,这个时候就会涉及到跨域提交数据的问题.本文将给您介绍如何使用jQuery来实现异步跨域提交表单数据.   在jQue ...

  8. jquery来跨域提交表单

    说说用jquery来实现跨域提交表单 在jQuery中,我们使用json数据类型,通过getJSON方法来实现从服务端获取或发送数据,而当要向不同远程服务器端提交或者获取数据时,要采用jsonp数据类 ...

  9. Ajax 跨域提交表单

    跨域提交表单,前端ajax不用做任何修改, 只需要在后端调用的方法里面添加一行代码即可. .NET 版 HttpContext.Response.AddHeader("Access-Cont ...

随机推荐

  1. wxPython 自动提示文本框

    1.原版和例子都在这里 在浏览器的地址栏,或者在百度.google 输入文字的时候,输入框的下面会把有关的项目都提示出来. wxPython 没有提供类似的控件,google 了一下,发现了一个,很好 ...

  2. FTP下载文件失败

    这几天的定时任务下载文件的脚本失败了. 于是手工执行测试,发现报550 Permission denied. Passive mode refused. 意思就是被动模式下,没有权限获取文件. 解决方 ...

  3. 07-本地 YUM 源制作

    1.YUM相关概念 1.1.什么是YUM YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基 ...

  4. 如何删除已安装的Windows服务

    1) 开始-运行,输入regedit命令.  (Windows键+R,输入regdeit) 2) 回车后会弹出一个窗口:注册编辑器.找到 HKEY_LOCAL_MACHINE\SYSTEM\Curre ...

  5. 手机电脑Mac地址修改方法

    1.什么是Mac地址? MAC(Media Access Control或者Medium Access Control)地址,意译为媒体访问控制,或称为物理地址.硬件地址,用来定义网络设备的位置.在O ...

  6. APUE学习--第三版apue编译

    第三版apue编译:     1. 首先在  http://www.apuebook.com/   下载源码解压:      tar zxvf src.3e.tar.gz 看完Readme可知,直接执 ...

  7. nodejs 笔记

    安装环境----------------------------------------------------------------1,安装nodejs 起步------------------- ...

  8. 常用ADO.NET操作ACCESS数据库

    using System; using System.Collections.Generic; using System.Text; using System.Data;// using System ...

  9. 关于so文件cp覆盖导致调用者core的研究

    先说cp好mv/rm的区别: cp from to,则被覆盖文件 to的inode依旧不变(属性也不变),内容变为from的: mv from to,则to的inode变为from的,相应的,to的属 ...

  10. [Sass]嵌套

    [Sass]嵌套-选择器嵌套 Sass 中还提供了选择器嵌套功能,但这也并不意味着你在 Sass 中的嵌套是无节制的,因为你嵌套的层级越深,编译出来的 CSS 代码的选择器层级将越深,这往往是大家不愿 ...