.net framework 2.0 和.net framework 3.5 中ajax 调用webservice 返回值的区别

最近遇到一个问题纠结了我一个多月:

由于代码是比较老的版本,所以ajax是调用 的webservice  而不是批处理文件.ashx文件

代码:
js:

$.ajax({
        type: "POST",
        contentType: "application/json",
        url: "WebService.asmx/GetIndexFocusPics",
        data: "{}",
        dataType: 'json',
        success: function(result) {
            alert(result);
        }
    });

webservice.cs:
    /// <summary>
    /// 获取首页焦点图广告
    /// </summary>
    /// <param name="typeID"></param>
    /// <returns></returns>
    [WebMethod]
    public string GetIndexFocusPics()
    {
        return BindFocusHtml("UP_GET_Index_FocusPicList", 600, 165);       
    }

别人交手给时,在别人电脑上  :&.ajax返回的result 是object   var test=result
而我电脑上result 是object object   而我要用result.d  才能获取的值
var test=result.d;

折磨了我一个月后才发现 是.net 版本问题,当时什么都改了,就是没想起web.config不一样。

项目中:
.net 3.5  web.config:

---------------------
<configSections>
  <sectionGroup name="system.web.extensions"

type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
   <sectionGroup name="scripting"

type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0,

Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="scriptResourceHandler"

type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"

allowDefinition="MachineToApplication"/>
    <sectionGroup name="webServices"

type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
     <section name="jsonSerialization"

type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"

allowDefinition="Everywhere"/>
     <section name="profileService"

type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"

allowDefinition="MachineToApplication"/>
     <section name="authenticationService"

type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"

allowDefinition="MachineToApplication"/>
     <section name="roleService"

type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions,

Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false"

allowDefinition="MachineToApplication"/></sectionGroup></sectionGroup></sectionGroup></configSec

tions>

<system.webServer>
   <validation validateIntegratedModeConfiguration="false"/>
  <modules>
   <remove name="ScriptModule"/>
   <add name="ScriptModule" preCondition="managedHandler"

type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral,

PublicKeyToken=31BF3856AD364E35"/></modules>
  <handlers>
   <remove name="WebServiceHandlerFactory-Integrated"/>
   <remove name="ScriptHandlerFactory"/>
   <remove name="ScriptHandlerFactoryAppServices"/>
   <remove name="ScriptResource"/>
   <add name="ScriptHandlerFactory" verb="*" path="*.asmx"

preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
   <add name="ScriptHandlerFactoryAppServices" verb="*"

path="*_AppService.axd" preCondition="integratedMode"

type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0,

Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
   <add name="ScriptResource" verb="GET,HEAD" path="ScriptResource.axd"

preCondition="integratedMode" type="System.Web.Handlers.ScriptResourceHandler,

System.Web.Extensions, Version=3.5.0.0, Culture=neutral,

PublicKeyToken=31BF3856AD364E35"/></handlers></system.webServer>

---------------------------------------------------
.net 2.0  web.config:

 <configSections>
    <sectionGroup name="system.web.extensions"

type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions,

Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
      <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup,

System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
        <section name="scriptResourceHandler"

type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions,

Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"

allowDefinition="MachineToApplication"/>
        <sectionGroup name="webServices"

type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions,

Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
          <section name="jsonSerialization"

type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions,

Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"

allowDefinition="Everywhere"/>
          <section name="profileService"

type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions,

Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"

allowDefinition="MachineToApplication"/>
          <section name="authenticationService"

type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions,

Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false"

allowDefinition="MachineToApplication"/>
        </sectionGroup>
      </sectionGroup>
    </sectionGroup>
  </configSections>


<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules>
      <add name="ScriptModule" preCondition="integratedMode"

type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0,

Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </modules>
    <handlers>
      <remove name="WebServiceHandlerFactory-Integrated"/>
      <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"

type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions,

Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd"

preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory,

System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
      <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD"

path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler,

System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
    </handlers>
  </system.webServer>


    就这个问题。。好像改变.net 由2.0转到3.5时,ajax中的版本有变动,,结果返回值就不一样了。。

具体中间细节请高手指教。。。。??????

原文地址:https://www.cnblogs.com/bleachli/p/1852452.html