2016-06-28 2 views
1

J'essaie actuellement de récupérer et d'envoyer des données de l'API de Marketo. Le problème est le suivant: ma plateforme Web est Salesforce Community. Si je comprends bien cet outil web, je ne suis pas autorisé à utiliser autre chose que du javascript pur.Appelez Marketo API en utilisant javascript seulement

J'ai construit une demande CORS comme ceci:

function createCORSRequest(method, url) { 
    var xhr = new XMLHttpRequest(); 

    if ("withCredentials" in xhr) { 
    xhr.open(method, url, true); 
    } else if (typeof XDomainRequest != "undefined") { 
    xhr = new XDomainRequest(); 
    xhr.open(method, url); 
    } else { 
    xhr = null; 
    } 
    return xhr; 
} 

function makeCorsRequest() { 
    var url = document.getElementById('url').value; 
    var xhr = createCORSRequest('GET', url); 
    if (!xhr) { 
    alert('CORS not supported'); 
    return; 
    } 

    xhr.onload = function() { 
    var text = xhr.responseText; 
    alert('Response from CORS request to ' + url + 'is : ' + text); 
    }; 

    xhr.onerror = function() { 
    alert('Woops, there was an error making the request.'); 
    }; 

    xhr.send(); 
} 

Avec l'aide de http://www.html5rocks.com/en/tutorials/cors/, mais le serveur ne semble pas accepter la demande puisque cette erreur revient:

« Non L'en-tête 'Access-Control-Allow-Origin' est présent sur la ressource demandée, l'origine 'http://testurl ...' n'est donc pas autorisée. "

Est-ce que quelqu'un sait si l'API de Marketo accepte les demandes CORS? Ou peut-être avoir une idée qui m'aiderait à résoudre ce problème? Merci beaucoup.

Répondre

1

L'API Marketo REST n'autorise pas les demandes CORS. Passer un appel du côté client dans le navigateur constitue également un risque pour la sécurité puisque vous exposerez votre jeton d'accès. En fonction de ce que vous essayez de faire, il peut y avoir des alternatives, ou vous pouvez configurer un service simple pour proxy vos demandes.