2

I need to call an authenticated Apex Rest API from Site.com page. The way I am trying is using Username-Password Oauth authorization flow, to get access token.

Below is the javascript code I am trying,

$(document).ready(function() {
    $.ajax({
        type: 'POST',
        url: 'https://login.salesforce.com/services/oauth2/token',
        headers: {
            'Content-Type' : 'application/x-www-form-urlencoded'
        },
        data: {
            'grant_type': 'password',
            'client_id': 'xxxxxxxxxxxxxxxxxxxxxxxx',
            'client_secret': 'xxxxxxx',
            'username': 'xxx@xxxx.com',
            'password': '*******'
        },
        success: function(response) {
            console.log('Successfully retrieved ' + response);
            //Other logic here
        },
        error: function(response) {
            console.log('Failed ' + response.status + ' ' + response.statusText);
            //Other logic here
        }
    });
});

But when I preview the site page, I receive a Cross Domain Access error in the browser console,

XMLHttpRequest cannot load https://login.salesforce.com/services/oauth2/token. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://nikhil-demo-dev-ed--sitepreview.ap2.force.com' is therefore not allowed access.

Does anybody have a solution for this issue?

Thanks in advance!!

0

Are you sure there is no way around calling that particular REST API?

Using the good ol ajax toolkit can be pretty versatile since you are on the Salesforce server. http://www.salesforce.com/us/developer/docs/ajax/Content/sforce_api_ajax_more_samples.htm

| improve this answer | |

Not the answer you're looking for? Browse other questions tagged or ask your own question.