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

QQ登录

只需一步,快速开始

查看: 16745|回复: 22

[结贴] wex5 ajax调用问题

  [复制链接]

66

主题

350

帖子

2145

积分

金牌会员

Rank: 6Rank: 6

积分
2145
发表于 2016-1-26 10:30:44 | 显示全部楼层 |阅读模式
1.如果在浏览器中打开http://227.10.10.10:8080/baas/pro/Sales, 能返回符合Data组件的JSON数据格式
是否说明跨域没问题?
2.如果跨域没问题,ajax调用上面的url会提示"网络出错",JUSTEP230109

66

主题

350

帖子

2145

积分

金牌会员

Rank: 6Rank: 6

积分
2145
 楼主| 发表于 2016-1-26 12:49:32 | 显示全部楼层
$.ajax({
                    type: "get",
                    "async" : false,
                    url: "http://227.10.10.10:8080/baas/pro/Sales",
                    contentType: "application/json; charset=utf-8",
                    dataType: "jsonp",
                    jsonp: "CallBack",
                    data: "{}",
                    success: function(resultData) {
                                   data.loadData(resultData);
                             },
                             error:function (){  
                             alert("错误");
                             }
                });
参考跨域写法后,JSON数据控制台打印出来了,但是没有加载进去
调试模式报错,哪里没弄对?
Uncaught SyntaxError:
Unexpected token :
回复 支持 反对

使用道具 举报

发表于 2016-1-26 14:18:56 | 显示全部楼层
teky 发表于 2016-1-26 12:49
$.ajax({
                    type: "get",
                    "async" : false,

首先,你浏览器访问或者app打包时,写的ip地址也是http://227.10.10.10:8080 才可以不跨越!如果你访问写的是域名, 在js中写的是ip那就会出现跨域问题
请问你是访问的baas吗?还是一个简单的sevlet
如果是baas,请就要使用
Baas.sendRequest 方法来处理,
如果是3.3版本
请参考:/UI2/takeout/index.w 外卖案例中的queryAddr方法!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

66

主题

350

帖子

2145

积分

金牌会员

Rank: 6Rank: 6

积分
2145
 楼主| 发表于 2016-1-26 14:58:47 | 显示全部楼层
liangyongfei 发表于 2016-1-26 14:18
首先,你浏览器访问或者app打包时,写的ip地址也是http://227.10.10.10:8080 才可以不跨越!如果你访问写 ...

app打包的IP和访问的IP不是同一个
app访问的是另一台服务器的baas
如果用Baas.sendRequest 方法来处理,里面的URL执行的时候会变成
http://localhost:8080/baashttp://227.10.10.10:8080/baas/pro/Sales 路径不正确导致执行失败
ajax调用的话,2楼的写法要报错
如果用Baas.sendRequest 方法来处理,应该如何改进?
如果用ajax的话,哪里需要修改?
回复 支持 反对

使用道具 举报

发表于 2016-1-26 15:49:40 | 显示全部楼层
teky 发表于 2016-1-26 14:58
app打包的IP和访问的IP不是同一个
app访问的是另一台服务器的baas
如果用Baas.sendRequest 方法来处理,里 ...

Baas.sendRequest 执行的时候变成了http://localhost:8080
就说明你打包的时候,服务器地址应该没写http://227.10.10.10:8080把!如果写了肯定不会这样的!
保证app打包 ip地址要写正确 baas服务要使用Baas.sendRequest来获取数据!
请问你是哪个版本?3.3版本的baas.js是:/UI2/system/lib/base/baas.js
3.2.1所在路径是:/UI2/demo/baas/baas.js
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

66

主题

350

帖子

2145

积分

金牌会员

Rank: 6Rank: 6

积分
2145
 楼主| 发表于 2016-1-26 16:25:52 | 显示全部楼层
liangyongfei 发表于 2016-1-26 15:49
Baas.sendRequest 执行的时候变成了http://localhost:8080
就说明你打包的时候,服务器地址应该没写http: ...

是3.3的版本
打包时服务器地址只能写一个吧?
我是在访问A服务器的过程中,调用B服务器的baas
这样该如何调用?
回复 支持 反对

使用道具 举报

发表于 2016-1-26 16:35:31 | 显示全部楼层
本帖最后由 liangyongfei 于 2016-1-26 16:37 编辑
teky 发表于 2016-1-26 16:25
是3.3的版本
打包时服务器地址只能写一个吧?
我是在访问A服务器的过程中,调用B服务器的baas

那就必须要跨域了:http://wex5.com/cn/ajax-cors-jsonp/
关于返回的数据结构处理方式,也可以参考;/UI2/system/lib/base/baas.js
在代码中应该是:xhr.responseJSON
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

66

主题

350

帖子

2145

积分

金牌会员

Rank: 6Rank: 6

积分
2145
 楼主| 发表于 2016-1-26 16:38:03 | 显示全部楼层
liangyongfei 发表于 2016-1-26 16:35
那就必须要跨域了:http://wex5.com/cn/ajax-cors-jsonp/

我在客户端这样写了

$.ajax({
                    type: "get",
                    "async" : false,
                    url: "http://227.10.10.10:8080/baas/pro/Sales",
                    contentType: "application/json; charset=utf-8",
                    dataType: "jsonp",
                    jsonp: "CallBack",
                    data: "{}",
                    success: function(resultData) {
                                   data.loadData(resultData);
                             },
                             error:function (){  
                             alert("错误");
                             }
                });
报错
Uncaught SyntaxError:
Unexpected token :
baas里面还需要修改吗?
回复 支持 反对

使用道具 举报

发表于 2016-1-26 16:41:18 | 显示全部楼层
teky 发表于 2016-1-26 16:38
我在客户端这样写了

$.ajax({

请看7楼 ,是否跨域,
还有就是debugger调试看看,是否执行到success 的回调方法中了!
建议跨域访问baas的方式也自己参照/UI2/system/lib/base/baas.js写一个封装好的js库!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

66

主题

350

帖子

2145

积分

金牌会员

Rank: 6Rank: 6

积分
2145
 楼主| 发表于 2016-1-26 21:34:46 | 显示全部楼层
liangyongfei 发表于 2016-1-26 16:41
请看7楼 ,是否跨域,
还有就是debugger调试看看,是否执行到success 的回调方法中了!
建议跨域访问baas ...

应该是跨域问题
用ajax方法,没执行到success,但是后台打印出了json数组
参照/UI2/system/lib/base/baas.js写了个库,把URL变了下
URL调用127.0.0.1报相同错误 Uncaught SyntaxError: Unexpected token :
这个问题还需求教!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-24 10:54 , Processed in 0.094931 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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