欢迎来到天天文库
浏览记录
ID:34316966
大小:71.42 KB
页数:4页
时间:2019-03-05
《关于ajax跨域调用asp》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、关于AJAX跨域调用ASP.NETMVC或者WebAPI服务的问题及解决方案问题描述当跨域(crossdomain)调用ASP.NETMVC或者ASP.NETWebAPI编写的服务时,会发生无法访问的情况。重现方式1.使用模板创建一个最简单的ASP.NETWebAPI项口,调试起來确认能正常工作TrttCofrtKrtler.cr•x#1■令WebApplK4t»oH6.C6ftrolim.Tc5tCertro0cY♦QGcfQEJumigSystea;JimgSystea.Collections.fienertv;jslngSystea4js
2、ingSystea・Net】jiSystes.Net.Http;j&mgSystes匚JnoMipaceUebApplication6Controllers1(CreGct()(•returnnewstrbigf](9valuelat*value2*};,£•i)▲IB〃fi£TiBpi/test/51*>e3publicstringGet(ln
3、tId)2dt([Fr4、PEhtml>2E3RIQ15min.jsi>x/script>6p-4〈script>7$(function(){8Q1vanurl=^httozZ/localhost^dlSG/aDi/test11:YI10$.ajax({11type:“GETJ12contentType:"application/json^^13url:url^14dataType5、:*json*15i-1success:function(result){16alert(result);17}18•});19・})20211/script>1.在浏览器中打开这个网页,我们会发现如下的错误(405:MethodNotAllowed)0V=JBwlUtlASC4GTTtritWatO0wtUnwGitW5JXsn—JtrH>4»R【备注】同样的情况,也发牛在ASP.NETMVC屮。某些时候,MVC也可以直接用来开发服务,与WebAPI相比各有优缺点。下面是-个利用MVC开发的服务的例子«itonvrwmioj€ctbui6、lddwugteamTOOLSTESTARCHTTECTUR£WEBESSENTIALSANALYZEWINDOWb・L怜…!r?dme-M51WebAppIvcibonSTcrtCorttollcfxsWeb.configHomcControUerxi皙X・七WebAppbc«tKx6.Con7、erences□publicclassHomeController:Controlie厂{//GET:Home0referencesEpublicActionResultIndex()8、{returnJson(new{Id=1},JsonRequestBehavior.AllowGet);}■}}原因分析跨域问题仅仅发生在Javascript发起AJAX调用,或者Silverlight发起服务调用时,其根本原因是因为浏览器对丁•这两种请求,所给予的权限是较低的,通常只允许调用木域中的资源,除非目标服务器明确地告知它允许跨域调用。所以,跨域的问题9、虽然是由于浏览器的行为产牛出来的,但解决的方法却是在服务端。因为不可能要求所有客户端降低安全性。解决方案针对ASP.NETMVC和ASP.NETWeb
4、PEhtml>2E3RIQ15min.jsi>x/script>6p-4〈script>7$(function(){8Q1vanurl=^httozZ/localhost^dlSG/aDi/test11:YI10$.ajax({11type:“GETJ12contentType:"application/json^^13url:url^14dataType
5、:*json*15i-1success:function(result){16alert(result);17}18•});19・})20211/script>1.在浏览器中打开这个网页,我们会发现如下的错误(405:MethodNotAllowed)0V=JBwlUtlASC4GTTtritWatO0wtUnwGitW5JXsn—JtrH>4»R【备注】同样的情况,也发牛在ASP.NETMVC屮。某些时候,MVC也可以直接用来开发服务,与WebAPI相比各有优缺点。下面是-个利用MVC开发的服务的例子«itonvrwmioj€ctbui
6、lddwugteamTOOLSTESTARCHTTECTUR£WEBESSENTIALSANALYZEWINDOWb・L怜…!r?dme-M51WebAppIvcibonSTcrtCorttollcfxsWeb.configHomcControUerxi皙X・七WebAppbc«tKx6.Con7、erences□publicclassHomeController:Controlie厂{//GET:Home0referencesEpublicActionResultIndex()8、{returnJson(new{Id=1},JsonRequestBehavior.AllowGet);}■}}原因分析跨域问题仅仅发生在Javascript发起AJAX调用,或者Silverlight发起服务调用时,其根本原因是因为浏览器对丁•这两种请求,所给予的权限是较低的,通常只允许调用木域中的资源,除非目标服务器明确地告知它允许跨域调用。所以,跨域的问题9、虽然是由于浏览器的行为产牛出来的,但解决的方法却是在服务端。因为不可能要求所有客户端降低安全性。解决方案针对ASP.NETMVC和ASP.NETWeb
7、erences□publicclassHomeController:Controlie厂{//GET:Home0referencesEpublicActionResultIndex()
8、{returnJson(new{Id=1},JsonRequestBehavior.AllowGet);}■}}原因分析跨域问题仅仅发生在Javascript发起AJAX调用,或者Silverlight发起服务调用时,其根本原因是因为浏览器对丁•这两种请求,所给予的权限是较低的,通常只允许调用木域中的资源,除非目标服务器明确地告知它允许跨域调用。所以,跨域的问题
9、虽然是由于浏览器的行为产牛出来的,但解决的方法却是在服务端。因为不可能要求所有客户端降低安全性。解决方案针对ASP.NETMVC和ASP.NETWeb
此文档下载收益归作者所有