跨域访问是ajax中比较头疼的事情。
Ext的Ext.data.ScriptTagProxy对象是用于解决这个问题的。
这个对象实际上做的事情就是使用动态script标签来处理跨域的请求问题。
script标签的主要优点在于它并不受Web浏览器跨域安全限制的束缚,以及比
XMLHttpRequest具备更好的浏览器兼容性。
ScriptTagProxy的使用方式比较简单,只用在构造函数中设置一个url。
示例代码:
var ds = new Ext.data.Store({
proxy: new Ext.data.ScriptTagProxy({
url: 'http://extjs.com/forum/topics-remote.php'
}),
reader: new Ext.data.JsonReader({
root: 'topics',
totalProperty: 'totalCount',
id: 'post_id'
}, [
{name: 'title', mapping: 'topic_title'},
{name: 'topicId', mapping: 'topic_id'},
{name: 'author', mapping: 'author'},
{name: 'lastPost', mapping: 'post_time', type: 'date', dateFormat: 'timestamp'},
{name: 'excerpt', mapping: 'post_text'}
])
});
这个url返回的应该是javascript类型的内容,java代码示例:
boolean scriptTag = false;
String cb = request.getParameter("callback");
if (cb != null) {
scriptTag = true;
response.setContentType("text/javascript");
} else {
response.setContentType("application/x-json");
}
Writer out = response.getWriter();
if (scriptTag) {
out.write(cb + "(");
}
out.print(dataBlock.toJsonString());
if (scriptTag) {
out.write(");");
}
ScriptTagProxy会把这段javascript动态添加到页面中,如果javascript中的内容是json格式的,
可以用Ext.data.JsonReader进行解析。
在地址栏中输入
http://extjs.com/forum/topics-remote.php?callback=strcall1001
就可以看到ext示例中的返回的javascript内容。
分享到:
相关推荐
Ajax跨域问题及其解决方案.docx
NULL 博文链接:https://chun521521.iteye.com/blog/1935516
关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是...o表现(整理了一些遇到的问题以及解决方案) 如何解决ajax跨域 oJSONP方式 oCORS方式 o代理请求方式 如何分析ajax跨域 ohttp抓包的分析 o一些示例
NULL 博文链接:https://exceptioneye.iteye.com/blog/1405495
Ajax跨域访问解决方案,访问第三方网站的资源
本资源主要介绍了AJAX跨域的解决办法,以及解决方案间的比较
解决ajax跨域问题
解决方案: 1.jsonp 在远程服务器上设法动态的把数据装进js格式的文本代码段中,供客户端调用和进一步处理;在前台通过动态添加script标签及src属性,表面看上去与ajax极为相似,但是,这和ajax并没有任何关系;...
什么是跨域,跨域出现的场景,模拟跨域,springmvc下解决跨域,springboot下解决跨域。绝对原创。
主要介绍了详解ajax跨域问题解决方案,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
该资源为ASP.NET网站开发技术中使用Ajax进行跨域请求时利用JSONP方案解决浏览器同源策略限制的源码,比较简单,仅供参考
本文通过设置Access-Control-Allow-Origin来实现跨域。 例如:客户端的域名是client.runoob.com,而请求的域名是server.runoob.com。 如果直接使用ajax访问,会有以下错误: XMLHttpRequest cannot load ...
一个c# ajax跨域的demo,解决c# ajax 跨域的问题
js跨域解决方案
ssm跨域问题解决方案
ajax 跨域问题!详细的说明了相应的用法!
ajax跨域问题的解决办法
NULL 博文链接:https://sun123start.iteye.com/blog/2150778