2012-12-05 6 views
0

Chrome에서이 $ .ajax 함수를 사용할 수 없습니다. 아약스 요청을하면 응답이 반환되지 않습니다. Chrome 개발자 도구에서이를 볼 때 json 요청이 아직 보류 중임을 나타냅니다. 지금까지 옵션에 이러한 매개 변수를 추가 할 것을 제안했습니다.크롬에서이 jQuery 아약스 호출이 작동하지 않는 이유

'{유형 : "POST", 데이터 :' '캐시 : 거짓, 비동기 : 거짓}'

그러나, 이러한 옵션 중 어느 것도 작동하지 않았다.

 try { 
      var o = {username: 'adobeedge', count: 4}; 
      var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count; 

      $("body").append('<p>attempting ajax</p>'); 

      $.ajax({url: twitterUrl, 
       dataType: 'jsonp', 
       type: "post", 
       data: '', 
       cache: false, 
       async: false, 
      }) 
        .success(function(data) { 

        $.each(data, function(index, item) { 
         $("body").append(item.text); 
        }); 
       }) ; 
     } 
     catch (error) { 
      alert("Error: " + error.toString()); 
     } 
+5

dev 도구에서 요청/응답을보고 무슨 일이 있었는지 확인 했습니까? 콘솔에 오류가 있습니까? –

+0

"작동하지 않는 것"보다 구체적 일 수 있습니까? 실패하거나 기대하지 않는 결과를 얻고 있습니까? 오류 메시지 또는 HTTP 코드가 있습니까? –

+1

저에게 잘 작동합니다 ... 확인하십시오 http://jsfiddle.net/vLYmY/3/ –

답변

0

이것이 도움이 될지 모르겠지만, 아약스 호출 외부에 첨부 된 성공 함수는 본 적이 없습니다. 내가 본 모든 jQuery 아약스 문서는 끝에 붙어있는 ".done"을 보여줍니다. 그러나, 나는 실제 Ajax 호출 자체 내에서 옵션으로 정의 된 성공 만 보았습니다. 다음과 같이 다시 쓸 수 있습니다.

$.ajax({ 
    url: twitterUrl, 
    dataType: 'jsonp', 
    type: "post", 
    data: '', 
    cache: false, 
    async: false, 
    success: function(data) { 
     $.each(data, function(index, item) { 
      $("body").append(item.text); 
     }); 
    } 
}); 

이 정보가 도움이되는지 확인하십시오. 도움이 될 수있는 또 다른 Stack Overflow Article도 있습니다. 이 기사에서는 "성공 :"과 ".done"의 다양한 용도에 대해 설명합니다. .ajax 문서에 대한 자세한 내용은 .ajax에 대한 jQuery API 설명서를 참조하십시오.

희망이 도움이됩니다.

+0

나는 이미 그것을 시도했다. jQuery가 jqXHR이라는 것을 구현했을 때 호출 외부에 첨부 된 .success. – user1214959

+0

나는 그것에 관한 문서를 발견했다. 이 jqXHR 객체와 관련된 .success, .error 등과 같은 콜백은 jQuery 버전 1.8에서 더 이상 사용되지 않습니다. 그 자리에 .done() 및 .fail()을 사용해야합니다. – War10ck

+0

완료를 성공으로 변경하면 ajax 호출이 크롬이나 파이어 폭스에서 작동하지 않습니다. – user1214959

0

jsonp은 동기 호출을 지원하지 않습니다. 시도해보십시오 async: true.

트위터가 차단 된 사무실에서 일하면서 시도 할 수 없습니다.

+0

이것은 작동하지 않습니다. – user1214959

1

다음 코드는 내 경우에는 잘 작동

내 크롬 버전 : 23.0.1271.95 m

try { 
     var o = {username: 'adobeedge', count: 4}; 
     var twitterUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + o.username + '&count=' + o.count; 

     $("body").append('<p>attempting ajax</p>'); 

     $.ajax({url: twitterUrl, 
      dataType: 'jsonp', 
      type: "post", 
      data: '', 
      cache: false, 
      async: false, 
     }) 
       .success(function(data) { 

       $.each(data, function(index, item) { 
        $("body").append(item.text); 
       }); 
      }) ; 
    } 
    catch (error) { 
     alert("Error: " + error.toString()); 
    } 
0

나는 정확한로, OSX 10.8.2에 패치를 완벽하게 크롬 오늘이 문제를 앓은 증상. 이것은 Google에서 찾을 수있는 내 문제에 대한 유일한 언급이었습니다.

개인 정보 보호에 초점을 맞춘 확장명이 Disconnect 인 것으로 나타났습니다.

확장 프로그램을 사용 중지하여 문제가 해결되는지 확인해보십시오. 희망이 도움이됩니다.

관련 문제