Javascript 避免跨域检查和其他浏览器安全检查

Javascript 避免跨域检查和其他浏览器安全检查,javascript,html,ajax,dynamics-crm-2011,Javascript,Html,Ajax,Dynamics Crm 2011,我们正在开发Dynamics CRM 2011产品,该产品在功能区中有一个按钮,用于调用外部API。当前,要使此按钮正常工作,需要在浏览器IE中更改以下设置: 我们希望避免这种情况,因为该产品的许多目标客户都非常有安全意识。有没有一种方法可以编写代码,使其不需要更改这些权限,但仍然能够与外部API通信?在CRM中按下按钮时运行的代码是HTML和Javascript 谢谢 我对这个CRM一无所知,但除了JSONP之外,最好的办法是让服务器端脚本充当代理 因此,您可以在与用户界面代码相同的域中创建脚

我们正在开发Dynamics CRM 2011产品,该产品在功能区中有一个按钮,用于调用外部API。当前,要使此按钮正常工作,需要在浏览器IE中更改以下设置:

我们希望避免这种情况,因为该产品的许多目标客户都非常有安全意识。有没有一种方法可以编写代码,使其不需要更改这些权限,但仍然能够与外部API通信?在CRM中按下按钮时运行的代码是HTML和Javascript


谢谢

我对这个CRM一无所知,但除了JSONP之外,最好的办法是让服务器端脚本充当代理

因此,您可以在与用户界面代码相同的域中创建脚本。然后,该脚本将使用服务器端语言(如PHP)代表您执行对跨域脚本的请求。服务器端连接对它可以访问哪个域没有限制,浏览器只知道它正在向调用域内的页面发送请求,这可能是安全的


如何做到这一点取决于选择的确切语言,但一般来说,您只需要将远程API URL以及所需的任何参数发送到服务器端脚本,然后服务器端脚本将请求重新构建到该URL,并将结果传递回客户端。

我不知道有关此CRM的任何信息,但除了JSONP,最好的办法是让服务器端脚本充当代理

因此,您可以在与用户界面代码相同的域中创建脚本。然后,该脚本将使用服务器端语言(如PHP)代表您执行对跨域脚本的请求。服务器端连接对它可以访问哪个域没有限制,浏览器只知道它正在向调用域内的页面发送请求,这可能是安全的


如何执行此操作取决于选择的确切语言,但一般来说,您只需要将远程API URL以及所需的任何参数发送到服务器端脚本,然后服务器端脚本将请求重新生成到该URL,并将结果传递回客户端。

您是否控制该API?如果是这样,请调查CORS。使用CORS,基本上只需向请求-响应中添加几个额外的头。如果您使用像jQuerys$.AJAX这样的AJAX库,您应该能够继续按原样编写代码。如果没有,可以在下面找到一篇关于如何在Javascript中实现cors的好文章:


要启用cors,请阅读

您是否控制API?如果是这样,请调查CORS。使用CORS,基本上只需向请求-响应中添加几个额外的头。如果您使用像jQuerys$.AJAX这样的AJAX库,您应该能够继续按原样编写代码。如果没有,可以在下面找到一篇关于如何在Javascript中实现cors的好文章:


要启用cors,请阅读

您可以使用JSONP,它绕过跨域限制,假设此API支持它。至于您问题中的ActiveX部分,以编程方式无法绕过它,也不应该这样。您可以使用JSONP,它绕过跨域限制,假设这个API支持它。至于你问题的ActiveX部分,没有办法通过编程绕过它,也不应该有。谢谢Peeter,这很有帮助。谢谢Peeter,这很有帮助。谢谢Telgin,我们正在研究CORS和代理,我们的团队对这两个方面都有不同的意见。谢谢Telgin,我们正在研究CORS和一个代理,我们的团队对其中任何一个都有不同的意见。