Salesforce, выполняющая вызовы REST с использованием токена доступа, использует локальный хост, а не URL-адрес экземпляра - PullRequest
0 голосов
/ 02 ноября 2019

Я использую ионное приложение и реализовал oauth с помощью forcejs, описанного здесь https://github.com/ccoenraets/forcejs/blob/master/README.md

мой код выглядит следующим образом:

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()
    });
  }

URL-адрес экземпляра oauth-токена и все токены обновленияпоявляется при входе в систему, но получает ошибку при возникновении контакта, как показано ниже

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-адрес localhost. Посоветуйте, пожалуйста, как решить эту проблему

1 Ответ

0 голосов
/ 02 ноября 2019

Я не знаю, как разрешить таким же образом, но затем я использовал прямой http отдых в формате, используя accessToken и instanceUrl из oAuth. Это прекрасно работает

...