2010-06-07 5 views
3

jQuery.ajax 함수를 사용하여 asp.net에서 페이지 메서드에 대한 ajax 호출을 수행합니다. 나는 구체적으로 content-typeapplication/json; charset=utf-8으로 설정했습니다. 방화 상자의 응답을 살펴보면 content-type은 html로 표시됩니다.jquery.ajax는 iis에서 콘텐츠 유형 "html"을 반환하고 로컬 호스트에서는 콘텐츠 유형 "json"을 반환합니다.

다음 내 아약스 호출에 코드입니다 : 당신은 특정 콘텐츠 형식을 요청

$.ajax({ 
      async: asyncVal, 
      type: "POST", 
      url: url + '/' + webMethod, 
      data: dataPackage, 
      contentType: "application/json; charset=UTF-8", 
      dataType: "json",    
      error: errorFunction, 
      success: successFunction 
     }); 
+1

localhost에서 실행중인 서버 코드가 IIS의 코드와 동일합니까? 웹 서버, WCF, aspx 페이지입니까? –

+0

서버 부품 코드를 게시 할 수 있습니까? – Oleg

답변

1

하지만 스크립트가 따라 응답 헤더를 설정하여이 요청을 처리하지 않는 경우, 당신은 IIS가 무엇을 결정하게 반환. 헤더를 올바른 값으로 설정하면됩니다.

+0

어떻게 그럴 수 있습니까? 페이지 메서드는 asp.net 페이지에 있습니다. – Sridhar

+0

sympony PHP 프레임 워크에서 ASP를 전혀 모르지만 다음과 같이하면됩니다 : $ this-> getResponse() -> setHttpHeader ('Content-type', 'application/json'); 비슷한 것을 검색하십시오 ... – greg0ire

+0

나는 당신에게 알려줄 것입니다. – Sridhar

1

서버의 web.config에 "ScriptModule"태그가 없습니다. 그 태그를 추가 한 후에는 모든 것이 잘 동작했습니다.

도움 주셔서 감사합니다.

1

이 코드를 web.config 파일에 추가하십시오.

<configuration> 
    <system.web> 
     <compilation debug="true" targetFramework="4.0" /> 
    </system.web> 
    <system.webServer> 
     <handlers> 
      <add name="ScriptHandlerFactory" 
       verb="*" path="*.asmx" 
       type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 
       resourceType="Unspecified" /> 
     </handlers> 
    </system.webServer> 
</configuration> 
관련 문제