JavaScript 跨域之POST实现方法
javascript跨域是一个很常见的问题,其中jsonp是一个最常用的手段,但是jsonp只支持get,不支持post,所以如果想通过jsonp来post一些数据,就头大了。
此处通过在一个iframe中生成form表单的形式来实现post,并通过postMessage来向调用者返回值。
第一步,我们先实现一个接受jsonp的后端代码,至于用什么语言实现,各位自已决定。
c#代码是:
protectedvoidPage_Load(objectsender,EventArgse) { StringBuildersbRet=newStringBuilder(); sbRet.Append(""); Response.Write(sbRet.ToString()); Response.End(); }
比如说你想返回给我的是 {userName:'user1',password:'pass1'} ,当我调用http://localhost/test?jsoncallback=callme的时候
你实际返回即可。
第二步,本地文件夹内构建post测试页面,如d:\test.html
第三步,浏览一下并点击提交,看看返回的如果是则说明后端程序没有问题了。
第四步,我们写段通用的代码来实现上面的html.
测试一哈
第五步、安全问题、
window.onmessage=function(e){ //可通过e来判断来源,并做一些安全方面的处理,此处读者自己去研究吧,可以加个console.log(e)看看e有哪些内容。 if(callback)callback(e.data); }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。