AJAX跨域问题处理

本文介绍了两种跨域获取数据的方法:一是通过远程加载JS文件,包括直接在HTML中使用script标签、动态创建script元素及使用JSLoader或jQuery进行加载;二是采用JSONP方式请求数据,并展示了客户端和服务端的具体实现。
摘要由CSDN通过智能技术生成

方式一:远程加载js文件获取数据

(1)       script 标签

<script src=’test.js’></script>

<script src=” id=”s1″></script>

<script language=”javascript”>
s1.src=”test.js”
</script>

<script>
var oHead = document.getElementsByTagName(‘HEAD’).item(0);
var oScript= document.createElement(“script”);
oScript.type = “text/javascript”;
oScript.src=”test.js”;
oHead.appendChild( oScript);
</script>

(2)       动态加载

JSLoader

JSLoader.loadJavaScript(“/ExtTestPro/WebContent/resources/libs/ext/adapter/ext/ext-base.js”);

jQuery.getScript(“http://app.cntvs.com/test/js.txt”, function(){…});

方式二:使用jsonp获取数据

客户端:

$.ajax({

type : “get”,

async:false,

url : “http://www.xxx.com/ajax.do”,

dataType : “jsonp”,

jsonp: “callbackparam”,//服务端用于接收callback调用的function名的参数

jsonpCallback:”success_jsonpCallback”,//callback的function名称

success : function(json){

alert(json);

alert(json[0].name);

},

error:function(){

alert(‘fail’);

}

});

服务端返回数据的示例代码:

public void ProcessRequest (HttpContext context) {

context.Response.ContentType = “text/plain”;

String callbackFunName = context.Request["callbackparam"];

context.Response.Write(callbackFunName + “([ { name:\"John\"}])”);

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值