下面这段代码创建的AVObject, 在Safari浏览器下进行属性修改的时候会报 Error {code: 1, message: "Forbidden writing by object's ACL."} 的错误,而在Firefox浏览器下却能正常的修改。

var acl = new AV.ACL();
acl.setPublicWriteAccess(false);
acl.setPublicReadAccess(true);
acl.setWriteAccess(AV.User.current(),true);
$scope.wzConfig = AV.Object.new('UserWZConfig');
$scope.wzConfig.set('ownerId',AV.User.current().id);
$scope.wzConfig.setACL(acl);
$scope.wzConfig.save();

你好,能否将request请求及response贴出来看下?

request:

{"photos":{"__op":"AddUnique","objects":[{"__type":"Pointer","className":"WZPhoto","objectId":"568cb73500b09aa2cb2b884f"}]},"_method":"PUT","_ApplicationId":"appID","_ApplicationKey":"appKey","_ClientVersion":"js0.6.4","_InstallationId":"f0c87936-db28-5331-b9a7-afedc785ee31","_SessionToken":"7k5i9xsyq9ni23mi9wr544kb4"}

response:
{"code":1,"error":"Forbidden writing by object's ACL."}

这种情况,一般和浏览器没关系。
请把两个浏览器的request和response都粘贴出来,然后对比一下。

这是Firefox的

{"photos":{"__op":"AddUnique","objects":[{"__type":"Pointer","className":"WZPhoto","objectId":"568cbad400b009a3c0305dfa"}]},"_method":"PUT","_ApplicationId":"appId","_ApplicationKey":"appKey","_ClientVersion":"js0.6.4","_InstallationId":"597351a6-080f-a297-e1bb-e4427aa05806","_SessionToken":"yjqlycjkn6estp8w7sfj435ls"}

Firefox的response是什么?

不同的地方是firefox的请求,系统的一些参数都加了下划线 "_" , 哦,下划线是贴进去的时候你们给干掉了

{"updatedAt":"2016-01-06T06:57:24.458Z","objectId":"568cad7a00b009a3c0300cf5"}

对比起来,基本上没有区别的,但是Safari就是会报权限的问题

1、这个日志是更新数据库的信息,并不和你一开始给出的代码相对应。
2、photos这条数据的ACL是怎么设置的?

没有设置photos的ACL,很奇怪的是,刚才这个问题消失了,我没有改任何代码。不知道怎么回事。