2013-01-10 2 views
0

저는 자바 스크립트에서 초보자입니다. 그리고 나는 가지고있는 오류를 정말로 이해하지 못합니다.함수 result.charAt가 존재하지 않습니다.

MVC3 웹 사이트에서 임베디드 시스템을 모니터링해야합니다. 나에게 말한다 내가 가진 오류가 방화범에있는 문자열

public String Get(String test) 
    { 
     flag = TCPClient.SendData(test); 
     if (flag == "1") 
     { 
      try 
      { 
       value = TCPClient.ReceiveData(); 
      } 
      catch 
      { 
       value = "Erreur"; 
      } 
     } 
     else value = "Erreur"; 

     return value; 
    } 

를 반환하는 C#을 액션, 여기

function GetTemp() { 
    var test = "gTe"; 
    $.ajax({ 
     url: '@Url.Action("../Carte/Get")', 
     type: 'GET', 
     data: {test: test}, 
     success: function (result) { 
      if (result.charAt(4) == 'a') { 
       $("#LumAct").text(result.substr(0, 4) + " %"); 
       alert('a'); 
      } 
    ... 

을 그리고있다 : 여기

이 실행되는 자바 스크립트 코드

TypeError: result.charAt is not a function 
     [Stopper sur une erreur]  
if (result.charAt(4) == 'a') { 

그럼 내가 이해하지 못한 것은 무엇입니까? 나는 컨트롤러에 httpGet을 보내어 문자열로 응답하는 ajx 함수를 사용하고있다. 자바 스크립트에서는, 내가했던 것처럼 문자열을 처리 할 수 ​​있습니다.

문자열 개체를 사용하려면 라이브러리를 추가하지 않았습니다. 내가 그 일을해야합니까? 그 정보를 찾지 못했습니다.

+1

jQuery가 데이터를 변환하지 못하도록'dataType : 'text','설정을 시도하십시오. – Musa

답변

2

이 시도 할 수 : @Musa에서 언급 한 바와 같이

if (String(result).charAt(4) == 'a') 

또한, 당신이 AJAX 호출에 dataType 속성을 추가해야합니다

$.ajax({ 
    url: '@Url.Action("../Carte/Get")', 
    type: 'GET', 
    dataType: 'text', 
    data: {test: test}, 
    success: function (result) { 
     if (result.charAt(4) == 'a') { 
      $("#LumAct").text(result.substr(0, 4) + " %"); 
      alert('a'); 
     } 
+0

오류가 사라졌습니다. 결과가 문자열이 아님을 의미합니까? 아니면 파이어 폭스에 의해 문자열로 볼 수 없습니까? 또는 문자열을 브라우저에 알리기 위해 몇 가지 코드를 추가해야합니까? –

+0

아마도 jQuery가 데이터를 암시 적으로 변환했기 때문일 수 있습니다. – ATOzTOA

+0

thx를 업데이트 할 때,이 "dataType" –

1

을 확인할 경우 jQuery.ajax api page는거야 최초의 인수가 dataType 파라미터로 포맷 된 Object 인 것을 확인한다. 솔직히 나는 console.log 결과를보고 어떻게 생겼는지 봅니다. charAt() 수 없으면 결과는 아마도 문자열이 아닙니다.

관련 문제