javascript 跨域是一个很常见的问题,其中 jsonp 是一个最常用的手段,但是 jsonp 只支持 get,不支持 post,所以如果想通过 jsonp 来 post 一些数据,就头大了。
此处通过在一个 iframe 中生成 form 表单的形式来实现 post,并通过 postMessage 来向调用者返回值。
第一步,我们先实现一个接受 jsonp 的后端代码,至于用什么语言实现,各位自已决定。
c#代码是:
");
sbRet.Append(Request["jsoncallback"]);
sbRet.Append("({");
foreach (string k in Request.Form) {
if (k == "jsoncallback") continue;
sbRet.Append("'"+k+"':'"+Request.Form[k]+"'");
}
sbRet.Append("});");
sbRet.Append("</script>");
Response.Write(sbRet.ToString());
Response.End();
}
比如说你想返回给我的是 { userName:'user1',password:'pass1' } , 当我调用 http://localhost/test?jsoncallback=callme 的时候
你实际返回 即可。