宝哥软件园

详细解密jsonp跨域请�

编辑:宝哥软件园 来源:互联网 时间:2021-09-09

1.什么是跨域请求:

服务器A上的一个页面,要请求服务器B上的一个处理程序,这就叫做跨域请求

本次的测试页面为:

处理程序kimhandler.ashx,如下:

%@ WebHandler语言='C# '类=' KimHandler ' %使用系统;使用系统网络.公共类kimnhandler : IHttpHandler { public void process request(HttpContext)}上下文} { string msg=' { ' name ' : ' Kim ', ' gender ' : '男 ', '年龄 ' :24 }语境。回应。写(味精);} public bool IsReuse { get { return false;} }}另一张处理程序handler.ashx如下:

"%@"网络处理程序语言="c# "类="使用系统的处理程序";使用系统网络.公共类处理程序: IHttpHandler { public void process request(HttpContext context){ string callback name=context .请求参数[' callbackFun '];字符串msg=callbackName '({ ' name ' : ' Kim ', ' age ' : ' 18 ' });';语境。回应。写(味精);} public bool IsReuse { get { return false;} }}2.埃阿斯无法实现跨域请求

meta http-equiv=' Content-Type ' Content=' text/html;charset=utf-8 '/title/title脚本var请求URL=' http://qxw 1192430265。我的3w。com/Kim handler。ashx ';窗户。onload=function(){ document。getelementbyid(' btnAjax ').onclick=function(){ var xhr=new XMLHttpRequest();xhr.open('get ',requestUrl,true);xhr。setrequestheader(' If-Modified-after ',0);xhr。onreadystatechange=function(){ if(xhr。readystate==4 xhr。status==200){ var RES=xhr。responsetext警报;} } xhr。发送(null);} }/脚本/床头输入类型='button' id='btnAjax '值='点击//正文/html查看监视器,发现没有返回任何请求报文体

3.使用脚本标签,可以实现跨域请求

测试代码如下:

!DOCTYPE html html xmlns=' http://www .w3。org/1999/XHTML ' hearteta http-equiv=' Content-Type ' Content=' text/html;charset=utf-8 '/title/title脚本src=' http :3358 qxw 1192430265。我的3w。com/Kim handler。ashx '/脚本/头体/体/html查看监视器,可以看到,有返回请求报文体

在用json格式看下

4.使用射流研究…方式,在浏览器端,读取响应是数据

测试代码如下,注意换了一个处理程序

!DOCTYPE html html xmlns=' http://www .w3。org/1999/XHTML ' hearteta http-equiv=' Content-Type ' Content=' text/html;charset=utf-8'/title/title脚本函数getDATa(data){ for(var key in data){ alert(data[key]);} }/script script src=' http :3358 qxw 1192430265。我的3w。com/handler。阿什克斯。callbackFun=getData '/脚本/头体/体/html通过后台代码,可知

然后在监视器上看看

发现在浏览器端,弹出了金姆(人名)还有18

5.使用日本季刊日本季刊来实现跨域请求(内部原理就是为我们创建了一个脚本标签)

代码如下

!DOCTYPE html html xmlns=' http://www .w3。org/1999/XHTML ' hearteta http-equiv=' Content-Type ' Content=' text/html;charset=utf-8 '/title/title脚本src=' http : jquery-1。9 .0 .js '/脚本var请求URL=' http://qxw 1192430265。我的3w。com/handler。ashx ';窗户。onload=function(){ document。getelementbyid(' btnJq ').onclick=function() { $ .ajax(requestUrl,{ type: 'get ',//请求方式dataType: 'jsonp ',//数据发送类型jsonp: 'callbackFun ',//服务器端接收的参数jsonpCallback: ' fun ',//js处理方法成功:函数(){ alert('成功');} });} } fun fun(数据){ for(var key in data){ alert(data[key]);} }/脚本/床头输入类型='button' id='btnJq '值='Jq按钮//正文/html点击按钮后,可以看到效果,再看下监视器

以上所述就是本文的全部内容了,希望大家能够喜欢。

更多资讯
游戏推荐
更多+