在javascript脚本里使用ODATA向组织服务发请求时报错,请求被拒绝了,后经人点拨得知是脚本跨域的问题,原因如下:访问系统我用的是IP地址,但通过
Xrm.Page.context. context.getServerUrl()获取的是如下的地址
这是数据库中存储的服务端地址而非取的我的客户端地址,问题就在这当这两个地址不同的时候会被系统认定为跨域访问导致访问被拒绝,当然跨域访问有跨域访问的解决方法,但这个问题所涉及的没那么复杂用不到跨域解决方案。
我使用的2011还没打12的补丁,在新的sdk中已经摒弃了context.getServerUrl这个方法取而代之的是getClientUrl,但话说这个方法是在12以后添加上的,所以12以前的版本调用会报错。
这边只是给可能遇到该问题的朋友提个醒,如果同样遇到这个问题但因某些原因而不能打12的补丁(当然这种概率很低)就使用相对地址就好了,例如 "/组织名/XRMServices/2011/OrganizationData.svc/"。