我正在创建一个浏览器扩展,它使用 rest api 发布到 salesforce chatter。一旦我从 OAuth 用户代理流程中获得 access_token,由于浏览器同源策略,我无法从 javascript 调用 rest 服务。我不想使用服务器作为代理,因为我想让扩展纯粹是客户端。
我尝试了 JSONP 解决方法,但它只适用于 GET,我需要 POST 才能将提要发布到 salesforce chatter
有没有可能的方法。请建议一些解决方法
我正在创建一个浏览器扩展,它使用 rest api 发布到 salesforce chatter。一旦我从 OAuth 用户代理流程中获得 access_token,由于浏览器同源策略,我无法从 javascript 调用 rest 服务。我不想使用服务器作为代理,因为我想让扩展纯粹是客户端。
我尝试了 JSONP 解决方法,但它只适用于 GET,我需要 POST 才能将提要发布到 salesforce chatter
有没有可能的方法。请建议一些解决方法
也许考虑将您的电话传递给 salesforce 中的自定义休息服务。使用 @RestResource 注释设置一个全局类,然后在其中设置一个 doPost 方法来处理您传递的内容,在您的情况下进行发布。
您仍然需要 Oauth 步骤来检索令牌,然后通过 Authorization : Bearer 标头消息与其余请求一起传递该令牌。
在此处查看有关此内容的好帖子https://wiki.developerforce.com/page/Creating_REST_APIs_using_Apex_REST
从 Salesforce '15 开始,您可以配置 CORS。因此,将您的应用程序域列入白名单,您可以做任何您想做的事情。没有解决获取access_token的问题。纯粹通过 javascript 获取 access_token 的唯一方法是使用用户代理流程,因为访问令牌作为 URL 部分传递......
一种选择是使用 http://www.ajax-cross-domain.com/之类的网站
这是关于这个问题的很好的参考http://www.d-mueller.de/blog/cross-domain-ajax-guide/