2014-11-20 3 views
0

Я развиваюсь в coldfusion с каркасом cfwheels. Я пытаюсь проверить (через AJAX), является ли или нет пользователь вошел в перед отправкой формы на защищенную страницу, которая требует пользователю быть авторизованы. Моя Аякса выглядит такcfwheels, возвращающийся JSON, который закомментирован

function viewOnWebsite() 
{ 
    params = { 
     format: "json" 
     , domain: '.#page.domain#' 
    }; 

    $.ajax({ 
     url: '/user/login' 
     , data: params 
     , dataType: 'json' 
     , type: 'POST' 
     , success: function(result, status, jqXHR){ 
      if(result) 
      { 
       $('##frmViewOnWeb').submit(); 
      } 
      else 
      { 
       alert('could not validate access to the website. You can try to refresh the page or log in'); 
      } 
     } 
     , error: function(jqXHR, status, error){ 
      alert(status); 
      console.log(error); 
     } 
    }); 
} 

И вот контроллер (детали, которые необходимо просмотреть)

<cfcomponent extends="Controller"> 
     <cffunction name="init"> 
      <cfset provides("html,json")> 
     </cffunction> 
    <cffunction name="login"><cfscript> 


     validationFunctionThatRedirectsInvalidUsers(true, 18); 

      /* Check to see if the authtoken still exists in the db. */ 
      if(tokenIsValid(session.user.aToken)) 
      { 
       response = {valid = "true"}; 
      } 
      else 
      { 
       /* Create a new token */ 
       application.user.notImportantCode(); 

       /* Set the cookie */ 
       cookie.somethingYouDontNeedToKnow = { 
        value = session.user.aToken 
        , domain = params.domain 
       }; 

       response = {valid = "true"}; 
      } 

      renderWith(data = response, returnAs = "json"); 
     </cfscript></cffunction> 

Прошу прощения за мошенничество моего кода в это время.

Как ни странно мой ответ от этой функции дает мне закомментирована JSON строку, которая выглядит следующим образом:

//{"valid":true} 

Chrome, Firefox и IE не может анализировать это (не пробовал сафари). Любая помощь приветствуется.

Также конечная игра должна возвращать true, если функция была успешной и ложной, если это не так. поэтому я хочу установить ответ на true или false, а не на структуру, как я сейчас. Я был буквально пытается вещи с тех пор, когда я просто вернулся правда я получаю строку JSON, как это:

//{true} 

ответ

1

Скорее всего Prefix сериализованную JSON с «//» включен в CF администратора или Application.cfc.

http://www.petefreitag.com/item/720.cfm

+0

Спасибо Я чувствую себя глупо сейчас, хотя. Это был довольно простой ответ. Я знал, что это будет так просто. –

Смежные вопросы