2011-10-13 1 views
2

이것은 스택에 대한 첫 번째 질문입니다.jQuery.ajax 유형 : IE에서 시작되지 않은 ashx 파일에 게시하십시오. FF, Chrome, Safari에서 잘 작동합니다.

jQuery.ajax 유형 : IE에서 시작되지 않은 ashx 파일에 게시.

코드 아래 FF, 크롬, 사파리에서 잘 작동 : 등 FF에서 잘 작동, 나는 ASHX 파일이 호출되고 정보가 기록 된 의미로

$.ajax({ 
    type: "Post", 
     url: "http://[ ... ]loguserdata.ashx?" + dataString, 
     data: "", 
     cache: "false", 
     contentType: "text/plain", 
     success: function(msg){ 
      //alert("Data Saved: " + msg); 
     } 
}); 

. 아약스 호출을 피들러, 방화범 및 크롬에서 볼 수 있습니다.

IE9 또는 IE 호환 모드에서는 잭치트가 발생하지 않는 것 같습니다.

위의 여러 버전의 코드를 다른 브라우저에서 사용할 수 있습니다. $('#result').load(...

을 포함하지만 아무것도, BTW

IE

에서 작동하지 IE에서 로컬로 작동합니다.

오, 그리고 나는 어떤 반환 값에 관해서 diddly 똥을주지 않습니다.

캐시 문제는 아닙니다. 나는 querystring의 끝에 붙인 date=getTime()을 가지고있다.

querystring (dataString)fname=john&lname=doedy

편집과 같은 형태 :이 문제를 해결했다. 나는 시간이있을 때 나는 철저한 대답을 내일 게시 할 것이다.

+0

ajax 호출 전에 경고를 표시하여 IE에서 이벤트에 코드가 호출되는지 확인하십시오. 다른 JQuery에서 뭔가 잘못되었을 수도 있습니다. –

+0

HTTP 검사기 (예 : [Charles] (http://www.charlesproxy.com/))를 사용하여 실제 무슨 일이 진행되고 있는지 살펴보십시오. Internet Explorer에서 충돌하는 스크립트를 찾아보십시오. –

답변

1

긴 이야기를 : 당신은 XMLHttpRequest 객체의 도메인 간을 할 수 없습니다. 쿼리 문자열 매개 변수 & 콜백 = 함께 jQuery의 getJSON 메서드를 사용하십시오. URL에 추가되었습니다. 이 데이터 형식을 JSONP로 변환합니다. 여기

var url = 'http://handlers.flowauto.com/eprice/loguserdata.ashx?fname=jim&callback=?'; 
     $.getJSON(url, function(data) { 
      // do some stuff 
     }); 

날이 문제를 해결 도움이 몇 가지 링크입니다. URL이 문자열이 포함 된 경우

http://api.jquery.com/jQuery.getJSON/

XMLHttpRequest cannot load an URL with jQuery

JSONP 아래 발췌 참조 "콜백 =?" (또는 서버 측 API에서 정의한 과 유사) 요청은 대신 JSONP 으로 처리됩니다. $에서 jsonp 데이터 유형에 대한 설명을 참조하십시오.ajax()에 자세한 내용.

http://api.jquery.com/jQuery.ajax/

추가 정보 아래 발췌를 참조하십시오 인해 브라우저 보안 제한으로 대부분의 "아약스" 요청이 동일한 원본 정책이 적용됩니다; 요청이 다른 도메인, 하위 도메인 또는 프로토콜에서 데이터를 검색 할 수 없습니다. 스크립트 및 JSONP 요청에는 동일한 출처가 적용되지 않습니다. 정책 제한 사항.

0

로컬로 작동하므로 IE 보안을 확인하십시오. 나는 locahost에있는 파일에 더 많은 권한이 있다고 생각한다.

편집 : IE9 너무 크로스 도메인 Ajax 호출, 오페라 브라우저를하고 방지

. IE9의 경우 해결 방법은 article입니다. 일반적인 XMLHttpRequest 대신 XDR (XDomainRequest)을 사용하는 것이 좋습니다.

+0

이것은 공개 웹 사이트에 추가됩니다. 사용자에게 설정 변경을 요구하는 것은 실제로 선택 사항이 아닙니다. – mtntrailrunner

+0

귀하의 의견 (동일한 도메인이 아님)에 따라 답변을 편집했습니다. – Nettogrof

0

이 당신이 전송되지 않기 때문에 POST 데이터를보십시오 :립니다

$.ajax({ 
    type: "GET", 
     url: "http://[ ... ]loguserdata.ashx?" + dataString,   
     cache: "false", 
     contentType: "text/plain", 
     success: function(msg){ 
      //alert("Data Saved: " + msg); 
     } 
}); 
+0

릭,이 기능은 여전히 ​​Chrome 및 FF에서만 작동하지만 IE에서는 작동하지 않습니다. 사이드 노트에서 나는 ashx 파일에서 aspx 파일로 바 꾸었습니다. 같은 것. Chrome 및 FF에서는 작동하지만 IE에서는 작동하지 않습니다. – mtntrailrunner

관련 문제