IE8 Ожидаемый идентификатор, строка или число в ajax Coldfusion

Я столкнулся с проблемой в моем коде. Выдает ошибку javascript в IE8,

"SCRIPT1028: Expected identifier, string or number"  

мой код,

<cfoutput>
<cfif iPro eq "M">
<cfset iIdLock = #DecryptX(iId)#>`

<script>
window.onbeforeunload = function(){
    var hook = true;
    if(hook){
        var r="#iIdLock#";
       $.ajax({                     
           type:'POST',
           async:false,
           url:"setlock.cfm",
           data:"s="+r,
           success: function(){},
           error: function(){},
        });
    }
}
</script>

</cfif>
</cfoutput>

В чем может быть проблема?


person Rik    schedule 17.09.2013    source источник
comment
Два предложения. Вам не нужны эти # # в вашем ‹cfset›, см. эта статья. И всегда полезно запускать JS через валидатор, такой как JSLint, который выявит проблему с завершающая запятая, которую Ли правильно определил   -  person duncan    schedule 17.09.2013


Ответы (2)


Всегда полезно выполнить быстрый поиск по ошибке перед публикацией :) очень быстрый поиск обнаружил эту ветку SO: SCRIPT1028: Ожидаемый идентификатор, строка или число. Одна из предполагаемых причин — лишние запятые в конце. Похоже, у вас есть лишняя запятая после функции «ошибка»:

    $.ajax({                     
           ...
           error: function(){},    
    });

Это кажется вероятной причиной, и по крайней мере это вызовет некоторую синтаксическую ошибку.

person Leigh    schedule 17.09.2013

На самом деле я использовал двойные кавычки в Ajax, и это вызвало мою проблему. Я просто заменил двойные кавычки на одинарные, и теперь все работает нормально.

var r="#iIdLock#"; -> var r='#iIdLock#

url:"setlock.cfm", -> url:'setlock.cfm',

data:"s="+r, -> data:'s='+r,
person Rik    schedule 02.10.2013