MS CRM 2013将版本号添加到脚本类型的WebResources

shy*_*kov 6 javascript ajax jquery dynamics-crm

我在MS CRM 2013中发现了一个奇怪的问题,因为它似乎是设计的,我需要帮助才能找到解决方法.

问题是getScript从WebResource 调用jQuery方法是不可能的.

CRM将版本字符串添加到URL,这会导致请求失败并显示错误500.

例如,当我试图打电话时: /Organization/WebResources/Synchronization.js

CRM将此请求转换为以下内容:/Organization/WebResources/Synchronization.js?_=1402918931398它因服务器错误而失败500.

这是我正在使用的示例代码:

var settings = {
    url: "/Organization/WebResources/Synchronization.js",
    dataType: "script",
    success: function (data) {
       console.log("success");
    },
    error: function(jqXHR, textStatus, errorThrown) {
       console.log("error");
    }
};

$.ajax(settings);
Run Code Online (Sandbox Code Playgroud)

你能指点我,我怎么知道URL什么时候改变了?

shy*_*kov 4

事实证明,这是jQuery缓存功能。

如果在设置对象中打开缓存,问题就会消失。像这样:

var settings = {
    url: "/Organization/WebResources/Synchronization.js",
    cache: true,
    dataType: "script",
    success: function (data) {
       console.log("success");
    },
    error: function(jqXHR, textStatus, errorThrown) {
       console.log("error");
    }
};
Run Code Online (Sandbox Code Playgroud)