起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4907|回复: 3

[分享] 关于X5连接自己的后台服务——JQuery跨域访问的一种方法

  [复制链接]

36

主题

94

帖子

190

积分

初级会员

Rank: 2

积分
190
QQ
发表于 2015-3-1 01:19:25 | 显示全部楼层 |阅读模式
本帖最后由 sakawinki 于 2015-3-1 01:27 编辑

本人亲测直接调用以下四种方法都只能局限于X5自身站点:
1、$.get        2、$.post        3、$.ajax          4、$.getJSON为什么呢?
网上查来查去,发现这个方式确实可以用X5连自己的后台,拿.net举例:
asp.net页面地址:http://localhost:26242/Index.aspx
核心内容:
protected void Page_Load(object sender, EventArgs e)
{
            string kk=Request.QueryString["jsoncallback"];
            Response.Write(kk + "([{'WebEngineInfo':'WEB SERVICE ENGINE IS RUNNING','TimeAt':'" + DateTime.Now.ToString() + "'}])");
}

X5中的代码:
$.getJSON("http://localhost:26242/Index.aspx?jsoncallback=?",
        { id:"0", action:"xxxjson"},
        function(json) {
                alert(json[0].WebEngineInfo);
        });

又测试了:
$.ajax({
                                "type" : "post",
                                "async" : false,
                                "dataType" : "json",
                                "contentType" : "application/json",
                                "url" : "http://localhost:26242/Index.aspx?jsoncallback=?", //this.BASE_URL + this.QUERY_URL,
                                "data" : JSON.stringify(ajaxData),
                                "success" : function(json) {
                                        alert(json[0].WebEngineInfo);
                                        for (var i = 0, len = querys.length; i < len; i++) {
                                                var query = querys;
                                                var maps = json[query.queryName];
                                                var table = self.maps2table(maps, query.data.defCols);
                                                query.data.loadData(table);
                                                query.data.first();
                                        }
                                        if (success && $.isFunction(success)) {
                                                success.call(this, json);
                                        }
                                },
                                "error" : error ? error : this.errorProcesser
                        });
非常好用!!!

【关键点】
总之前台请求时传递的jsoncallback和后台服务页的Request.QueryString["jsoncallback"]是关键参数,没有就不能跨域。而且后台得到的Request.QueryString["jsoncallback"]必须加在返回值前面才行。
感觉有点像一种通讯的回执校验一样。

评分

参与人数 1 +8 收起 理由
jishuang + 8 赞一个!

查看全部评分

2

主题

7

帖子

32

积分

新手上路

Rank: 1

积分
32
QQ
发表于 2015-3-1 11:31:32 | 显示全部楼层
困扰了很久的问题 谢谢楼主
回复 支持 反对

使用道具 举报

2

主题

9

帖子

38

积分

新手上路

Rank: 1

积分
38
QQ
发表于 2015-3-24 18:32:39 | 显示全部楼层
有没有,完整 X5 中的代码,官网的API文档,也是这么说,但没有看懂,就是 在 X5 中,如何显示  jQuery  跨域的数据。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

14

积分

新手上路

Rank: 1

积分
14
QQ
发表于 2015-4-1 08:41:24 | 显示全部楼层
james2 发表于 2015-3-24 18:32
有没有,完整 X5 中的代码,官网的API文档,也是这么说,但没有看懂,就是 在 X5 中,如何显示  jQuery  跨 ...

同问
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-10 12:44 , Processed in 0.065910 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表