我正在使用启用了ajax的wcf并将其部署在iis8上。当我从localhost访问服务时显示所需的结果
{“GetInsuranceResult”:[{“ItemID”:6,“ItemName”:“Adam Insur(11月19日) 2012年6:11 PM)“},{”ItemID“:7,”ItemName“:”州生活(2012年11月19日 下午6:12)“},{”ItemID“:8,”ItemName“:”Jublie Ins(2012年11月19日下午2:36) )“},{”ItemID“:10,”ItemName“:”州生活“(2013年3月5日下午3:26 )“},{”ItemID“:13,”ItemName“:”医疗保险“(2013年3月25日下午3:43 )“},{”ItemID“:14,”ItemName“:”药物(2013年3月25日下午3:44)“}}}
但是当我从客户端访问服务时(通过ip地址),结果是不同的。
{“GetInsuranceResult”:[{“ItemID”:7,“ItemName”:“State Life2-edit(Nov) 19 2012年6:12 PM)“},{”ItemID“:8,”ItemName“:”Jublie Insurance Com(Nov) 19 2012年2:36 PM)“},{”ItemID“:10,”ItemName“:”国家生活-3(3月5日) 2013年3:26 PM)“},{”ItemID“:14,”ItemName“:”药物“(2013年3月25日 下午3:44)“},{”ItemID“:15,”ItemName“:”test(2013年3月27日上午3:24) )“},{”ItemID“:16,”ItemName“:”新测试(2013年3月27日上午6:31)“}}}
WCF代码
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "Insurance?PatientID={PatientID}")]
[OperationContract]
GenericItemsDTO[] GetInsurance(string PatientID);
public GenericItemsDTO[] GetInsurance(string PatientID)
{
InsuranceBLL insBLL = new InsuranceBLL();
InsuranceDTO insDTO = new InsuranceDTO();
List<GenericItemsDTO> listIns = new List<GenericItemsDTO>();
listIns = insBLL.GetGenericItemsListByPatientID(Convert.ToInt32(PatientID));
GenericItemsDTO[] arrayIns = listIns.ToArray();
return arrayIns;
}
和WCF web.config
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding crossDomainScriptAccessEnabled="true" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="524288"
transferMode="Buffered">
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
</binding>
</webHttpBinding>
</bindings>
<standardEndpoints>
<webScriptEndpoint>
<standardEndpoint name="" crossDomainScriptAccessEnabled="true" />
</webScriptEndpoint>
</standardEndpoints>
<services>
<service name="PHRWCFService.Service1" behaviorConfiguration="ServBehave">
<!--Endpoint for SOAP-->
<endpoint
address="soapService"
binding="webHttpBinding"
behaviorConfiguration="restPoxBehavior"
contract="PHRWCFService.IService1"/>
<!--Endpoint for REST-->
<endpoint
address="XMLService"
binding="webHttpBinding"
behaviorConfiguration="restPoxBehavior"
contract="PHRWCFService.IService1"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServBehave">
<dataContractSerializer maxItemsInObjectGraph="2147483647"/>
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<!--Behavior for the REST endpoint for Help enability-->
<behavior name="restPoxBehavior">
<webHttp helpEnabled="true"/>
<dataContractSerializer maxItemsInObjectGraph="2147483647" />
</behavior>
</endpointBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" maxUrl="4294967295" maxQueryString="4294967295" />
</requestFiltering>
</security>
<directoryBrowse enabled="true" />
<modules runAllManagedModulesForAllRequests="true" />
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
</customHeaders>
</httpProtocol>
</system.webServer>
和Ajax调用
function GetPatientInsurance() {
var uid = checkCookie1();
userid = uid.toString().replace(/"/g, '');
//var userid=uid;
"use strict";
var wcfServiceUrl = "http://xxxxxxxxxx/PHRService/Service1.svc/XMLService/";
$.ajax({
url: wcfServiceUrl + "Insurance",
data: "PatientID=" + userid + "",
type: "GET",
processData: false,
contentType: "application/json",
timeout: 10000,
dataType: "json",
beforeSend: function (xhr) {
$.mobile.showPageLoadingMsg();
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
},
complete: function () {
$.mobile.hidePageLoadingMsg();
},
success: function (data) {
var result = data.GetInsuranceResult;
var items = [];
$.each(result, function (i, item) {
items.push('<li><a onclick=redirect(\'AddInsurance.htm?id=' + item.ItemID + '\');\>' + item.ItemName + '</a></li>');
});
$('#main_list').append(items.join(''));
$('#main_list').listview('refresh');
},
error: function (data) {
alert("Error");
}
});
}
任何人都可以告诉我为什么会出现这个问题。
感谢。