2012-08-06 99 views
0

我正在Salesforce中创建一个与iOS客户端进行通信的web服务。客户端已经通过验证并收到令牌。该应用程序将调用Web服务作为接收数据。以系统管理员身份登录后,该应用程序可以顺利运行。然而,作为一个标准用户登录时,应用程序失败,出现以下错误:Salesforce Web服务失败

2012-08-06 08:44:13.827 myApp[74075:fb03] Request Failed with Error: Error Domain=com.alamofire.networking.error Code=-1011 "Expected status code in (200-299), got 403" UserInfo=0x8246410 {NSErrorFailingURLKey=https://xxxx-full.cs3.my.salesforce.com/services/apexrest/mobileServices/v1/SystemDataRecords, NSLocalizedDescription=Expected status code in (200-299), got 403}, { 
    NSErrorFailingURLKey = "https://xxxx--full.cs3.my.salesforce.com/services/apexrest/mobileServices/v1/SystemDataRecords"; 
    NSLocalizedDescription = "Expected status code in (200-299), got 403"; 
} 

显然,这让我觉得,它是与资源共享模式。但是,如果标准用户直接在salesforce.com上登录时尝试提取相同的数据,则不存在任何问题。

有什么想法?

+0

403是一个禁止状态代码,因此它正在被阻止。 – DaveHogan 2012-08-06 13:56:47

回答

0

排除共享问题的一种方法是尝试将您的类定义更改为不共享(或仅仅省略共享,因为不共享是默认设置)。

global without sharing class MyWebService 
{ 
    ... 
} 

没有看到任何你的代码,我猜测它只是一个共享模型问题。但是,例如,如果您的Apex代码基于活动用户的配置文件分支不同,那么这可能也是一个问题。

0

虽然这是旧帖子,对我来说问题是“配置文件无法访问Apex类”一旦我这样做了,我得到了 StatusCode = 200消息。希望它能帮助别人。