我创建了一个直接从客户端访问 Salesforce REST API 的 AngularJS 服务。但是,由于同源限制,我无法让它工作。即使在访问未经身份验证的 REST 服务并同时尝试 $http、$http.json 和 Ajax 时也是如此。我还尝试了很多 Json、Jsonp 等的组合。
鉴于我遇到了很多问题,我认为我的一般方法是不正确的。也许我需要为此设置代理服务器?我的后端是 Firebase,所以我目前没有自己的服务器。
我不相信 Salesforce API 支持 COR,我无法改变它。
这是我尝试使用 $http 和 Ajax 的示例。
return $http.jsonp('https://na1.salesforce.com/services/data/',{
headers: {
'Content-type': 'application/json', 'Accept': 'application/json'
}}).
success(function (data, status, headers, config) {
callback(data);
console.debug(data.json);
}).
error(function (data, status, headers, config) {
console.debug("getVersions: failed to retrieve data: "+eval(data));
});
$.ajax({
url: 'https://na15.salesforce.com/services/data',
type: "GET",
dataType: "jsonp",
beforeSend: function(xhrObj){
xhrObj.setRequestHeader("Content-Type","application/json");
xhrObj.setRequestHeader("Accept","application/json");
xhrObj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
},
success: function (data) {
console.debug(data);
callback(data);
},
error: function(data) {
}
});