2014-06-16 3 views
6

Ho riscontrato strani problemi in MS CRM 2013 e, poiché sembra essere di progettazione, ho bisogno di aiuto per trovare un modo per aggirarlo.MS CRM 2013 aggiunge il numero di versione a WebResources di tipo di script

Il problema è impossibile chiamare getScript metodo jQuery da WebResource.

Il CRM aggiunge la stringa di versione all'URL e ciò causa la richiesta di errore con l'errore 500.

Per esempio, quando sto cercando di chiamare: /Organization/WebResources/Synchronization.js

Il CRM trasforma questa richiesta in seguito: /Organization/WebResources/Synchronization.js?_=1402918931398 e non riesce con l'errore del server 500.

Ecco il codice di esempio sto usando:

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); 

Potrebbe per favore mi punto, come posso sapere quando URL è cambiato?

+0

solo una nota, il numero viene aggiunto al fine di forzare il browser a utilizzare l'ultima versione del WebResource, altrimenti la cache del browser caricherà le vecchie versioni –

+0

In CRM 2013 l'aggiunta di questi numeri porta al server errore 500. – shytikov

risposta

4

Si scopre che questa è la funzione di memorizzazione nella cache jQuery.

Se la memorizzazione nella cache viene attivata nell'oggetto impostazioni, il problema scompare. Come questo:

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"); 
    } 
}; 
+0

hai controllato se con 'cache: true' hai la versione più recente? –

+0

@GuidoPreite No. Sto facendo affidamento sulla cache. Questo non va bene, in generale, ma in questo caso, potrebbe andare bene, non mi aspetto che il file 'js' cambi. E ancora una volta, anche se volessi ottenere la versione non memorizzata nella cache, CRM 2013 non mi consente. – shytikov