Salesforce使用访问令牌进行REST调用使用本地主机而不是实例URL

时间:2019-11-02 06:01:32

标签: rest ionic-framework salesforce

我正在使用离子应用,并且已经使用https://github.com/ccoenraets/forcejs/blob/master/README.md

中描述的forcejs实现了oauth

我的代码如下:

getContacts(){
    let service = DataService.getInstance();
    service.query('select id, Name from contact LIMIT 50')
        .then(response => {
            let contacts = response.records;
            console.log(JSON.stringify(contacts))
    });
  }


  login(){
    let oauth = OAuth.createInstance('mycousmerappid','','http://localhost:8100/tabs/tab1');
    oauth.login().then(oauthResult => {
            DataService.createInstance(oauthResult);
            console.log("Logged Into Salesforce Successfully:::" + JSON.stringify(oauthResult));
            this.getContacts()
    });
  }

oauth令牌实例的URL和刷新令牌都在登录时出现,但获取联系会引发以下错误

zone-evergreen.js:2952 GET http://localhost:8100/tabs/services/data/v41.0/query?q=select%20id%2C%20Name%20from%20contact%20LIMIT%2050 404 (Not Found)
scheduleTask @ zone-evergreen.js:2952
scheduleTask @ zone-evergreen.js:378
onScheduleTask @ zone-evergreen.js:272

core.js:9110 ERROR Error: Uncaught (in promise): XMLHttpRequest: {"__zone_symbol__readystatechangefalse":[{"type":"eventTask","state":"scheduled","source":"XMLHttpRequest.addEventListener:readystatechange","zone":"angular","runCount":8}],"__zone_symbol__xhrSync":false,"__zone_symbol__xhrURL":"http://localhost:8100/tabs/services/data/v41.0/query?q=select%20id%2C%20Name%20from%20contact%20LIMIT%2050","__zone_symbol__xhrScheduled":true,"__zone_symbol__xhrErrorBeforeScheduled":false,"__zone_symbol__xhrTask":{"type":"macroTask","state":"scheduled","source":"XMLHttpRequest.send","zone":"angular","runCount":0}}
    at resolvePromise (zone-evergreen.js:797)
    at resolvePromise (zone-evergreen.js:754)
    at zone-evergreen.js:858
    at ZoneDelegate.invokeTask (zone-evergreen.js:391)
    at Object.onInvokeTask (core.js:34182)
    at ZoneDelegate.invokeTask (zone-evergreen.js:390)
    at Zone.runTask (zone-evergreen.js:168)
    at drainMicroTaskQueue (zone-evergreen.js:559)
    at ZoneTask.invokeTask [as invoke] (zone-evergreen.js:469)
    at invokeTask (zone-evergreen.js:1603)

基于链接,我不希望它使用基本URL本地主机。请告知如何解决此问题

1 个答案:

答案 0 :(得分:0)

我不知道如何解决相同的问题,但随后我使用了来自oAuth的accessToken和instanceUrl的直接http rest格式。很好