加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax跨域请求服务

发布时间:2020-12-16 01:46:15 所属栏目:百科 来源:网络整理
导读:2 $.ajax({ 3 type : "get" , 4 async : false , 5 url :xhrurl, data:{a=1,b=2}, 6 cache : false , 7 dataType : "jsonp" , 8 jsonp: "callbackparam" , 9 jsonpCallback:"jsonpCallback1" , 10 success : function (json){ 11 alert(json[0 ].name); 12 }

 2 $.ajax({
 3         type : "get", 4         async : false, 5         url :xhrurl,
    data:{a=1,b=2}, 6         cache : false, 7         dataType : "jsonp", 8         jsonp: "callbackparam", 9         jsonpCallback:"jsonpCallback1",10         success : function(json){
11             alert(json[0].name);
12         },13         error:function(e){
14             alert("error");
15         }
16     });
 
 
 String callbackFunName = context.Request["callbackparam"];
           context.Response.Write(callbackFunName + "([ { "name":"aa"}])");

PS:客户端的jsonp参数是用来通过url传参,传递jsonpCallback参数的参数名,比较拗口,通俗点讲:

jsonp: "callbackparam"
jsonpCallback:"jsonpCallback1"

这两个参数最终会拼接在请求的url后面,变成 http://www.xxx.com/ajax/xxx.ashx?callbackparam=jsonCallback1
服务端要获取这个参数值:"jsonCallback1" ,拼接在要输出的JSON数据最前面,不然就算请求成功你也只会看到警告:
Resource interpreted as Script but transferred with MIME type text/plain:

却看不到success定义的函数执行。
顺带一提:
在chrome浏览器里,还可以在服务端设置header信息
context.Response.AddHeader("Access-Control-Allow-Origin","*");
来达到跨域请求的目的,并且不需要设置ajax以下参数
dataType : "jsonp",jsonp: "callbackparam",jsonpCallback:"jsonpCallback1"

以正常ajax请求方式就可以获得数据。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读