当前位置: 首页 > 编程语言 > C#

IIS6下jqueryajax发布到WCF服务的post数据(方法参数)在IE中会被删除(除非fiddler在运行)分享

时间:2023-04-10 21:33:39 C#

IIS6下jquery发布的post数据(方法参数)WCF服务的ajax(方法参数)在IE中被删除(除非fiddler正在运行)一段时间以来一直在为这个问题烦恼。在IIS6和Windows身份验证下,每当我尝试使用jquery发布到WCF服务时,都会调用并执行服务方法,但所有发布数据(方法参数)都是空的。这似乎只发生在该机器上的IE8版本上。这不会发生在Firefox中,也不会发生在fiddler运行时(充当代理)。这段代码在IIS7下运行良好,在IIS6匿名身份验证下似乎也运行良好。发布数据只是JSON。$.callService('GetCurrentTemplates',pagingData,GetCurrentTemplateSucceeded,ServiceFailed);$.callService=function(url,data,successHandler,failHandler){varapplicationUrl=$("#hdApplicationUrl").val();$.ajax({type:"POST",//GETorPOSTorPUTorDELETE动词url:applicationUrl+"Service.svc/"+url,//服务数据的位置:$.jsonSerialize(data),//DatasenttoservercontentType:"application/json;charset=utf-8",//contenttypesenttoserverdataType:"json",//Expecteddataformatfromserverprocessdata:true,//TrueorFalse成功:function(result){if(result==null){varresultObj=newObject();resultObj.status=401;resultObj.statusText='Unauthorized';$.showError(resultObj);return;}if(successHandler!=null&&successHandler!=undefined)successHandler(result);},//成功时error:function(result){$.showError(result);}//Service调用失败时});WCF服务早在使用WebServiceHostFactory和web.config的定义如下:当然,服务文件是匿名访问的(不是windows认证)如果我们在匿名访问下运行一切,jquery会把合适的数据传递给服务,方法会返回我们想要的,ETC。如果我们在集成模式身份验证下运行但客户端上有fiddler,也会发生同样的情况。似乎Fiddler正在更改数据包以修复一个明显的缺陷-有问题,因为问题似乎只是机器本地的(排除使用wireshark/ethereal嗅探数据包并确定确切的差异)。此时您可以提供的任何建议/信息都将非常有帮助。2011-09-07更新:有趣的是,如果我联系服务(并且asp.net启动它)-我可以将服务从匿名访问更改为Windows集成身份验证。尽管服务已经启动并激活,但这实际上使一切都能完美运行。如果我等待IIS6将元数据库更改刷新到磁盘并运行IISreset(或回收应用程序池),它会失败。它失败并显示“此服务的安全设置需要‘匿名’身份验证,但未为托管此服务的IIS应用程序启用它。”看起来我被卡住了。无论出于何种原因,我的参数发布设置在匿名访问下都丢失了。如果该服务已经启动,我可以将文件更改为集成模式auth,一切都会正常进行。如果该服务没有启动(或在应用程序池回收时丢失)并且它设置为集成模式身份验证,我会因上述错误而失败。耶加德!原因似乎是IE遇到NTLM,然后网站上的所有其他页面都需要NTLM。请参阅http://support.microsoft.com/?id=251404“您无法将数据发布到具有非NTLM身份验证的网站”建议的解决方法是在所有内容上启用NTLM如果您在所有内容上启用NTLM启用NTLM。另一种解决方法是更改??NTLM身份验证过程的客户端注册表黑客攻击。从那个链接:大概,Fiddler使它工作,因为它以不同的方式进行NTLM握手。以上是C#学习教程:IIS6下jqueryajax发布到WCF服务的post数据(方法参数)在IE中会被删除(除非fiddler在运行)。分享的所有内容,如果对大家有用还需要了解更多关于C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: