支持ajax跨域调用的WCF搭建示例

前端之家收集整理的这篇文章主要介绍了支持ajax跨域调用的WCF搭建示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

支持ajax 跨域调用的WCF搭建@H_404_3@@H_404_3@

1.新建一个"ASP.NET空Web应用程序"项目。@H_404_3@@H_404_3@

@H_404_3@

2.新建一个“WCF服务(支持ajax)”。@H_404_3@@H_404_3@@H_404_3@

3.修改WCFAjaxService.svc下的WCFAjaxService.svc.cs文件@H_404_3@@H_404_3@@H_404_3@

如下所示(示例):@H_404_3@

@H_404_3@
namespace@H_404_3@ WCF_Ajax跨域调用示例
{
    [ServiceContract(Namespace @H_404_3@= "@H_404_3@WCF_Ajax跨域调用示例@H_404_3@"@H_404_3@)]
    [AspNetCompatibilityRequirements(RequirementsMode @H_404_3@= AspNetCompatibilityRequirementsMode.Allowed)]
    [JavascriptCallbackBehavior(UrlParameterName @H_404_3@= jsoncallback@H_404_3@"@H_404_3@)]
    @H_404_3@public@H_404_3@ class@H_404_3@ WCFAjaxService
    {@H_404_3@
        [OperationContract]
        [WebGet(ResponseFormat @H_404_3@= WebMessageFormat.Json)]
        @H_404_3@public@H_404_3@ List<UserInfo> GetUser()
        {@H_404_3@
            return@H_404_3@ new@H_404_3@ List<UserInfo>(){
            @H_404_3@new@H_404_3@ UserInfo(){Id=1@H_404_3@,Name=jayjay1@H_404_3@"@H_404_3@},2@H_404_3@,0)">jayjay2@H_404_3@"@H_404_3@}};
        }@H_404_3@
    }

    [DataContract]
    @H_404_3@class@H_404_3@ UserInfo
    {
        [DataMember]
        @H_404_3@int@H_404_3@ Id { get@H_404_3@; set@H_404_3@; }
@H_404_3@
    [DataMember]@H_404_3@
    @H_404_3@string@H_404_3@ Name { set@H_404_3@; } } }@H_404_3@
@H_404_3@

注意别忘了给Service打上@H_404_3@

[JavascriptCallbackBehavior(UrlParameterName = "jsoncallback")]@H_404_3@@H_404_3@

标记。@H_404_3@

4.修改Web.config配置文件@H_404_3@@H_404_3@@H_404_3@

<@H_404_3@system.serviceModel@H_404_3@>@H_404_3@ bindings@H_404_3@>@H_404_3@ webHttpBinding@H_404_3@>@H_404_3@ binding @H_404_3@name@H_404_3@="HttpJsonBinding"@H_404_3@ crossDomainScriptAccessEnabled@H_404_3@="true"@H_404_3@></@H_404_3@binding@H_404_3@</@H_404_3@behaviors@H_404_3@>@H_404_3@ endpointBehaviors@H_404_3@>@H_404_3@ behavior @H_404_3@="AjaxServiceAspNetAjaxBehavior"@H_404_3@>@H_404_3@ enableWebScript @H_404_3@/>@H_404_3@ behavior@H_404_3@serviceHostingEnvironment @H_404_3@aspNetCompatibilityEnabled@H_404_3@="true"@H_404_3@ multipleSiteBindingsEnabled@H_404_3@/>@H_404_3@ services@H_404_3@service @H_404_3@="AjaxService"@H_404_3@endpoint @H_404_3@address@H_404_3@=""@H_404_3@ behaviorConfiguration@H_404_3@="AjaxServiceAspNetAjaxBehavior"@H_404_3@ binding@H_404_3@="webHttpBinding"@H_404_3@ bindingConfiguration@H_404_3@ contract@H_404_3@="AjaxService"@H_404_3@ />@H_404_3@ service@H_404_3@>@H_404_3@ >@H_404_3@

@H_404_3@

注意,配置文件添加了@H_404_3@

>@H_404_3@

节点,并在endpoint节点中添加了@H_404_3@

bindingConfiguration="HttpJsonBinding"@H_404_3@@H_404_3@

5.调用方式@H_404_3@@H_404_3@@H_404_3@

在另一个网站中使用@H_404_3@@H_404_3@

@H_404_3@
$.ajax({
                url: @H_404_3@"http://localhost:46318/WCFAjaxService.svc/GetUser?jsoncallback=?",type: @H_404_3@"get",dataType: @H_404_3@"jsonp",success: @H_404_3@function@H_404_3@ (data) {
                    alert(data[@H_404_3@0]);
                }
            });@H_404_3@
@H_404_3@

调用。@H_404_3@

从返回报文中可以看出数据以jsonp@H_404_3@@H_404_3@格式跨域返回。@H_404_3@

jsonp1430098026913([{"__type":"UserInfo:#WCF_Ajax%E8%B7%A8%E5%9F%9F%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B","Id":1,"Name":"jayjay1"},{"__type":"UserInfo:#WCF_Ajax%E8%B7%A8%E5%9F%9F%E8%B0%83%E7%94%A8%E7%A4%BA%E4%BE%8B","Id":2,"Name":"jayjay2"}]);

data[0]指的是取第一个json对象@H_404_3@,如 data[0].Name取到“jayjay1” 。@H_404_3@


@H_404_3@

转自 http://www.cnblogs.com/sunniest/p/4459130.html@H_404_3@@H_404_3@

原文链接:https://www.f2er.com/ajax/163361.html

猜你在找的Ajax相关文章