2012-02-09 2 views
2

Chrome 및 AJAX에 매우 이상한 문제가있어 잠시 동안 작동 해 온 자동 완성 양식이 있습니다. 나는 오늘 아침 비주얼 스튜디오를 해고하고 더 이상 작동하지 않는다. 그것은 (크롬과 함께) 생산에서 잘 작동하며 크롬이나 파이어 폭스 나 IE를 사용하면 로컬에서 잘 작동합니다!

나는 오류를 얻을 :

개발자 도구에서

Failed to load resource

, 내가 오류에 확장 할 때 내가 얻을 :

f.support.ajax.f.ajaxTransport.sendjquery-1.7.1.min.js:4 
f.extend.ajaxjquery-1.7.1.min.js:4 
$.autocomplete.sourceCreate:217 
a.widget._searchjquery-ui-1.8.17.custom.min.js:127 
a.widget.searchjquery-ui-1.8.17.custom.min.js:127 
(anonymous function)jquery-ui-1.8.17.custom.min.js:127 

내가 서버에 콜백 함수에 중단 점을 배치하지만 아무튼 심지어 서버로 보내지도 않습니다. 오류는 여기에, 클라이언트 측에서 확실히 클라이언트 측 코드입니다

$("#LocationTxt").autocomplete({ 
      minLength: 4, 
      source: function (req, resp) { 
       $.ajax({ 
        type: "GET", 
        url: "/Ad/SearchLocations", 
        data: "term=" + req.term, 
        contentType: "application/json; charset=utf-8", 
        success: function (data) { 
         resp($.map(data, function (value, key) { 
          return { data: value, label: data[key].Name, value: data[key].Name }; 
         })); 
        }, 
        error: function (data) { 
         alert(data.statusText); 
        } 
       }); 
      }, 
      select: function (e, ui) { 
       var cityId = ui.item.data.Id; 
       $('#AdListing_LocationID').val(cityId); 
      } 
     }); 

는 또한 오류 이벤트가 트리거됩니다, 그리고하는 statusText 속성은 단순히 "오류"입니다. 별로 도움이되지 않습니다. Chrome 버전을 실행하고 있습니다 : 17.0.963.46 (2012 년 2 월 9 일에 최신 버전이 있습니다). 나는 나의 컴퓨터를 해고했을 때 나의 크롬이 오늘 아침에 업데이트했다고 믿지만, 나는 확실하지 않다. 내 크롬이 업데이트 된시기를 알려주는 로그가 있습니까?

+0

cool. 그래서 아무 것도 보내지 않을거야? 개발자 콘솔을 통해 수동으로 트리거하면 어떻게됩니까? 결코 호출되지 않으면 호출하는 코드일까요? – tkone

+0

그래서 제안을 받아 수동으로 실행했지만 여전히 작동하지 않았습니다. 그런데 IE/Firefox와 Chrome간에 다른 점을 비교하기로 결정했습니다. 광고 차단 플러그인을 사용 중지했을 때 발견되었습니다. 내 양식을 작성하기 때문에 "광고"그래서 내 자바 스크립트 개체 이름 등 많은 "광고"라는 단어가 많이 있기 때문에 코드 또는 해당 블랙리스트에 깨진 그 플러그인에 대한 업데이 트가 있었다고 생각합니다. 그래서 이상하지만 도움을 주셔서 감사합니다! – TheWebGuy

답변

1

코드의 로컬 복사본을 작업하는 경우 localhost와 같은 웹 서버에서 작업하고 있는지 확인하십시오. 파일 시스템에서 직접 작업하는 경우 Google 크롬은 보안상의 이유로 파일 시스템의 파일에 대해 아약스 요청을 허용하지 않습니다. 더

몇 가지 ...

제거하기 : 당신은 JSON을 전송하지 않는

contentType: "application/json; charset=utf-8", 

, 당신은 GET 요청을 전송한다. 대신이 번호를

dataType: "json", 

과 같이 추가하여 jQuery가 json을 수신 할 것으로 예상하십시오.

올바른 문자셋 utf-8을 사용하여 contentType을 application/json으로 설정하는 헤더를 서버가 반환하도록하는 데 도움이 될 수도 있습니다.

+0

IIS 및 Visual Studio에서 "사용자 지정 웹 서버 사용"옵션을 사용하고 있습니다. 이미지 용 가상 디렉터리를 만들고 싶었 기 때문에이 파일 시스템을 직접 사용하지 않기 때문에이 옵션을 사용합니다. – TheWebGuy

관련 문제