我目前正在尝试从Marketo的API中检索和发送数据。问题是:我的Web平台是Salesforce社区。如果我正确理解了这个网络工具,我不允许使用除纯JavaScript之外的任何其他内容。
我已经建立了这样的CORS请求:
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();
}
在http://www.html5rocks.com/en/tutorials/cors/的帮助下,服务器似乎无法接受请求,因为此错误会再次出现:
" No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' http://testurl ......'因此不允许访问。"
有人知道Marketo的API是否接受CORS请求?或者也许有一个想法可以帮我解决这个问题?非常感谢你。
答案 0 :(得分:1)
Marketo REST API不允许CORS请求。在浏览器中进行客户端调用也存在安全风险,因为您将公开访问令牌。根据您尝试做的事情,可能有其他选择,或者您可以设置一个简单的服务来代理您的请求。