2012-02-17 3 views
1

Я использую jQuery 1.7.1 в веб-приложении, работающем на WebLogic 10.3.2. Я делаю ajax GET на сервере. Все это отлично работает в FF и Chrome, но ничего не происходит для событий ajax в IE 8. Это похоже на то, что готовый документ не настроил их вообще.jQuery ajax не работает в IE

Вот некоторые из ЯШ:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <link rel="stylesheet" type="text/css" href="css/messaging.css" /> 
    <link rel="stylesheet" type="text/css" href="css/jquery-ui-1.8.17.custom.css" /> 
    <link rel="stylesheet" type="text/css" href="css/ui.dynatree.css" /> 
    <link rel="stylesheet" type="text/css" href="css/jquery.cluetip.css" /> 
    <link rel="stylesheet" type="text/css" href="css/jquery-ui-timepicker-addon.css" /> 
    <script type="text/javascript" src="js/jquery-1.7.1.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.8.17.custom.min.js"></script> 
    <script type="text/javascript" src="js/jquery.dynatree.js"></script> 
    <script type="text/javascript" src="js/jquery.cookies.2.2.0.js"></script> 
    <script type="text/javascript" src="js/jquery.cluetip.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-timepicker-addon.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-sliderAccess.js"></script> 
    <script type="text/javascript">  
$(document).ready(function() {            
    $.ajaxSetup ({ 
     cache: false, 
     xhrFields: { 
      withCredentials: true 
     }, 
     crossDomain: true 
    }); 
... 
$('#findSites').click(function() {        // Locate HTML DOM element with ID "somebutton" and assign the following function to its "click" event... 
searchVal = document.getElementById("searchFor").value; 
searchTyp = document.getElementById("searchType").value; 
$.get('SiteSearchServlet', {searchFor: searchVal, searchType: searchTyp}, function(responseJson) { // Execute Ajax GET request on URL of "someservlet" and execute the following function with Ajax response JSON... 
... 

Я попытался убрав кодировку, используя только кэш = ложь в ajaxsetup - не помогло. Вызов $ .get ajax не выполняется при нажатии кнопки findSites.

Может ли кто-нибудь сказать мне секрет получения jQuery ajax GET для работы с IE?

+0

Если положить 'console.log()' или 'предупреждение()' в точке, где '$ .get()' выполняет _that_ execute? – nnnnnn

ответ

2

Попробуйте использовать $ .ajax вместо $ .get, таким образом вы можете добавить обратный вызов ошибки и посмотреть, почему вызов ajax терпит неудачу.

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/ (см наконец ... раздел в конце)

+1

Спасибо - я добавил: «.error (function (jqXHR, textStatus, errorThrown) {alert (« Ошибка: »+ errorThrown);})« вместо этого вместо этого (то же самое) и получил ошибку «нет транспорта» , Поиск в Google говорит, что это связано с междоменными проблемами. Затем я добавил эту строку, чтобы заставить IE разрешить это: «jQuery.support.cors = true; // принудительно использовать межсайтовый скриптинг». Это вызвало призыв ajax к работе! Надеюсь, что это помогает кому-то другому. – Mark

+0

рад, что это помогло. убедитесь, что вы установите для jQuery.support.cors значение false после вызова ajax для предотвращения нежелательного или непреднамеренного XSS. – jbabey

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