2012-02-17 28 views
1

WebLogic 10.3.2上で動作するWebアプリケーションでjQuery 1.7.1を使用しています。私はサーバーにajax GETを行います。これはFFとChromeでうまく動作しますが、IE 8のajaxイベントでは何も起こりません。あたかもdocの準備ができていないかのようです。ここでjQuery ajaxがIEで動作しない

は、JSの一部です:

<%@ 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にのみキャッシュ=偽を使用して、文字セットをオフに残して試してみた - 助けにはなりませんでした。 findSitesボタンがクリックされたとき、$ .get ajax呼び出しは実行されません。

jQueryのAjax GETをIEで動作させる秘密を誰にでも教えてもらえますか?

+0

(最後の最後に...の項を参照))'や '警告()' '' $のに.get()時点で

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/ 実行していますか? – nnnnnn

答えて

2

$ .getの代わりに$ .ajaxを使用すると、エラーコールバックを追加して、なぜajax呼び出しが失敗したかを確認できます。あなたが `にconsole.logを(置く場合

+1

ありがとうございました - 代わりに私の$ .getに ".error(function(jqXHR、textStatus、errorThrown){警告(" Error: "+ errorThrown);})"を追加しました。 。 Googleの検索では、クロスドメインの問題に関連していると言われています。私はこの行を追加してIEに強制的に "jQuery.support.cors = true; //クロスサイトスクリプティングを強制する"ようにしました。これはajaxコールが機能するようになった!希望は他の誰かを助ける。 – Mark

+0

うれしかったです。 ajax呼び出しの後にjQuery.support.corsをfalseに戻して、望ましくないまたは意図しないXSSを防ぐようにしてください。 – jbabey