我们正在开发一个 Dynamics CRM 2011 产品,该产品在功能区中有一个调用外部 API 的按钮。目前,要使此按钮起作用,需要在浏览器 (IE) 中更改以下设置:
我们希望避免这种情况,因为该产品的许多目标客户都非常注重安全。有没有办法编写代码,使其不需要更改这些权限,但仍然能够与外部 API 通信?在 CRM 中按下按钮时运行的代码是 HTML 和 Javascript。
谢谢!
我们正在开发一个 Dynamics CRM 2011 产品,该产品在功能区中有一个调用外部 API 的按钮。目前,要使此按钮起作用,需要在浏览器 (IE) 中更改以下设置:
我们希望避免这种情况,因为该产品的许多目标客户都非常注重安全。有没有办法编写代码,使其不需要更改这些权限,但仍然能够与外部 API 通信?在 CRM 中按下按钮时运行的代码是 HTML 和 Javascript。
谢谢!
您是否在控制 API?如果是这样,请查看 CORS。使用 CORS,您所做的基本上就是在请求响应中添加一些额外的标头。如果您使用 AJAX 库(如 jQuerys $.ajax),您应该能够按原样继续编写代码。如果没有,可以在这里找到一篇关于如何在 Javascript 中实现 cors 的好文章:http: //eriwen.com/javascript/how-to-cors/
要启用 cors,请阅读http://enable-cors.org/
我对这个 CRM 一无所知,但除了 JSONP 之外,最好的办法是让服务器端脚本充当代理。
因此,您将在与用户界面代码相同的域中创建一个脚本。然后,该脚本将使用服务器端语言(例如 PHP)代表您执行对跨域脚本的请求。服务器端连接对其可以访问的域没有限制,浏览器只知道它正在向调用域内的页面发送请求,这可能是安全的。
你将如何做到这一点取决于选择的确切语言,但通常你只需要发送远程 API URL 以及服务器端脚本所需的任何参数,然后重新构建对该 URL 的请求并传递结果回到客户端。