博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AJax跨域请求
阅读量:7239 次
发布时间:2019-06-29

本文共 996 字,大约阅读时间需要 3 分钟。

客户端JS: 1var xhrurl = ';; 2$.ajax({ 3 type : "get", 4 async : false, 5 url :xhrurl, 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 }); 服务端代码: 1 String callbackFunName = context.Request["callbackparam"]; 2 context.Response.Write(callbackFunName + "([ { \"name\":\"John\"}])"); PS:客户端的jsonp参数是用来通过url传参,传递jsonpCallback参数的参数名,比较拗口,通俗点讲: jsonp: "callbackparam" jsonpCallback:"jsonpCallback1" 这两个参数最终会拼接在请求的url后面,变成 服务端要获取这个参数值:"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请求方式就可以获得数据。

转载于:https://www.cnblogs.com/wr1994/p/e123.html

你可能感兴趣的文章
Scrapy命令和备注
查看>>
MySql
查看>>
Spring和springMVC父子容器的关系
查看>>
计算机图形学常用算法
查看>>
systemd自启动java程序
查看>>
Spring Boot 项目中使用JSP
查看>>
TensorFlow-谷歌深度学习库 体验一二三
查看>>
SSM架包
查看>>
corte-m3中的pc值的问题
查看>>
[TCO2013]TrickyInequality
查看>>
序列化之Parcelable
查看>>
运算符优先级
查看>>
多任务-进程之PID
查看>>
C# 隐藏最大化、最小化和关闭三个按钮
查看>>
devcloud
查看>>
Codeforces 1139D(期望dp)
查看>>
解决AX2012通过AXC配置文件打开客户端时出现WCF 错误
查看>>
课题申请经验简单总结
查看>>
Javascript Array Distinct (array.reduce实现)
查看>>
[SOJ] Ordering Tasks
查看>>