AngularJS中跨域REST调用的正确架构模式是什么?
发布时间:2020-12-17 18:03:21 所属栏目:安全 来源:网络整理
导读:我创建了一个直接从客户端访问Salesforce REST API的AngularJS服务.但是,由于相同的原产地限制,我无法使其正常工作.即使访问非经过身份验证的REST服务并尝试$http,$http.json和Ajax.我也尝试了很多Json,Jsonp等的组合. 鉴于我有这么多问题,我认为我的一般方
我创建了一个直接从客户端访问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,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) { } }); 解决方法
你需要进入SalesForce内的远程设置,然后进入CORS并将域名列入白名单……
我有同样的问题,似乎已经解决了这个问题. 看看这有助于here (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |