2013-06-27 3 views
9

Следующая тег изображения в моей странице регистрацииПолучить изображение с помощью JQuery AJAX

<img id="CaptchaImg" alt="Captcha" src="@url.action("Captcha","Login")" style="" /> 

Теперь, когда я обновить мою страницу входа в систему, он отлично работает, и получает изображение от контроллера, но когда я Перелогиньтесь страница входа в систему. Метод контроллера не вызывается. Проблема только в IE работает отлично на Chrome. Есть ли работа? Могу ли я что-то сделать с вызовом jQuery Ajax контроллеру, я пробовал это, но метод успеха не вызывается. Есть ли другой путь?

$.ajax({ 
    type: "GET", 
    url: '/Login/CaptchaImage', 
    datatype: "image", 
    success: function(data) { 
     debugger 
     $('#CaptchaImg').attr('src', data); 
    } 
}); 
+1

Почему ты пользуешься 'img' ЦСИ как этот' «@ url.action (» Защитный код «„Логин“)» '? –

ответ

9

Попробуйте

$.ajax({ 
    type: "GET", 
    url: '@Url.action("Captcha","Login")', 
    dataType:"image/jpg", 
    success: function (data) { 
     $('#CaptchaImg').attr('src', data); 
     } 
}); 
+1

Тип данных должен быть 'dataType'? –

+0

url.action должен быть 'Url.Action'? –

+0

Спасибо за ответ. Теперь элемент управления приходит к функции успеха, но формат данных не является правильным, может быть из-за неправильного типа данных. Метод «Captcha» возвращает объект типа «FileContentResult». Так будет «изображение/jpeg "быть прав? –

0

веб-сервер должен возвращать base64 данные. как это

{ base64Data:"blahblahblah" } 

ваш контент-запрос запроса ajax может быть простым json; в функции успеха в AJAX вы могли бы сделать, как этот

success:function(data){ 
    var src="data:image/png;base64,"+data.base64Data; 
     $('#CaptchaImg').attr(src,src) 
}