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

QQ登录

只需一步,快速开始

查看: 3034|回复: 12

[处理中3] 使用Baas.net在SQL Server数据库中新增记录的问题

[复制链接]

2

主题

9

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
发表于 2017-11-15 11:33:07 | 显示全部楼层 |阅读模式
本帖最后由 snowleaf_love 于 2017-11-15 11:32 编辑

我用wex5(3.6版本),使用Bass.net访问SQL Server 2012,bass数据组件能正常显示出表的数据,但想新增一条记录,页面报错,不知道哪里出问题?
表的字段:
ID,类型varchar(50),主键,没有设置自增量。
Name,类型varchar(50),允许空值。
使用如下代码添加记录:
var baasNetPay = this.comp("baasTestSQL");
baasNetPay.newData({
                        defaultValues : [ {
                                "ID" : justep.UUID.createUUID()
                        } ]
                });
baasNetPay.saveData();

baas.png
发表于 2017-11-15 13:47:01 | 显示全部楼层
报错 应该是跨域的问题!
你打开页面的URL是什么??  baas 请求的地址  IP端口是否一致的??

不一致,需要服务器支持跨域!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

2

主题

9

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-11-15 14:09:59 | 显示全部楼层
本帖最后由 snowleaf_love 于 2017-11-15 14:12 编辑

目前我的query类的查询动作能够查询出结果,说明不存在跨域、地址、IP端口的问题。上面之所以显示跨域问题,可能是没正常返回HTML代码导致。
回复 支持 反对

使用道具 举报

发表于 2017-11-15 14:49:19 | 显示全部楼层
snowleaf_love 发表于 2017-11-15 14:09
目前我的query类的查询动作能够查询出结果,说明不存在跨域、地址、IP端口的问题。上面之所以显示跨域问 ...

没正常返回HTML代码导致  ??啥意思?  返回什么HTML??
明显是跨域啊!
你看两个地址  baas请求没有加8080端口  
而你的页面请求应该有8080端口吧!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

2

主题

9

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-11-15 15:02:25 | 显示全部楼层
我用的是baas.net,肯定是跨域,页码代码也增加了这一句
justep.Baas.BASE_URL = "http://localhost//baas";

但是我的所有baas组件的查询操作都能正常查到数据,如果是跨域问题,应该是不能正常查到
回复 支持 反对

使用道具 举报

2

主题

9

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-11-15 15:12:13 | 显示全部楼层
liangyongfei 发表于 2017-11-15 14:49
没正常返回HTML代码导致  ??啥意思?  返回什么HTML??
明显是跨域啊!
你看两个地址  baas请求没 ...

举个例子,自定义的ACTION方法,如果处理过程出错,没正常返回结果,浏览器里也会显示类似的出错信息
回复 支持 反对

使用道具 举报

发表于 2017-11-15 15:46:55 | 显示全部楼层
snowleaf_love 发表于 2017-11-15 15:02
我用的是baas.net,肯定是跨域,页码代码也增加了这一句
justep.Baas.BASE_URL = "http://localhost//baas"; ...

那你把wex5开发的页面,也部署到。net上试试,保证不跨越的情况下正常吗?
目前报错信息是因为跨域!

你可以先把外卖案例,请求你的 .net  BaasServer 试试保存功能正常吗??
可以先保证平台案例运行没问题!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

2

主题

9

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-11-15 16:10:47 | 显示全部楼层
好的,我试试
回复 支持 反对

使用道具 举报

2

主题

9

帖子

23

积分

新手上路

Rank: 1

积分
23
QQ
 楼主| 发表于 2017-11-16 15:32:34 | 显示全部楼层
本帖最后由 snowleaf_love 于 2017-11-16 15:34 编辑

跨域问题找到了:
在baas.net下的ActionHandler.cs类的第83行开始的这段代码有问题:
                JObject ret = Engine.ExecAction(effectivePath, paramObject, assembly);
                if (null != ret)
                {
                    //设置跨域访问
                    if (!string.IsNullOrEmpty(accessControlAllowOrigin))
                    {
                        response.AddHeader("P3P", "CP=CAO PSA OUR");
                        response.AddHeader("Access-Control-Allow-Origin", accessControlAllowOrigin);
                        response.AddHeader("Access-Control-Allow-Credentials", "true");
                    }
                    Util.WriteJsonToResponse(response, ret);
                }
对于Save类Action,执行Engine.ExecAction(effectivePath, paramObject, assembly),返回的是NULL,但该段代码却把跨域代码放在if (null != ret)这个条件里面,所以实际上没有被执行,导致跨域问题。
当初WEX5推出Bass.net版本到底有没有详细测试,这个问题也太严重了。


这个问题算是找到了,但又有新的问题出现了!!!!!!!
之前代码总算能正常执行,但是在SQL Server 2012的表中却没有增加到记录。我在MYSQL数据库里建了同样的表,可以增加成功。这又是怎么回事?
回复 支持 反对

使用道具 举报

发表于 2017-11-16 15:59:30 | 显示全部楼层
snowleaf_love 发表于 2017-11-16 15:32
跨域问题找到了:
在baas.net下的ActionHandler.cs类的第83行开始的这段代码有问题:
                JObj ...

数据库连接正常吗??
sqlServer 查询正常吗??   还是只有保存不生效??
有没有报错信息?

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-28 11:36 , Processed in 0.063876 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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