内容类型'application / json; charset = utf-8'不是预期的类型'text / xml; charset = utf-8'错误

时间:2014-08-14 12:29:56

标签: javascript xml json wcf dynamics-crm-2011

我收到的错误是'内容类型' application / json;字符集= UTF-8'不是预期的类型&text; / xml;字符集= UTF-8'错误'在尝试添加WCF服务时。

Javascript代码:

var $jbis = jQuery.noConflict();

var LiveUrl = "http://" + window.location.hostname + "/ISV/CRM.QuoteCopyEntitiesService/";
var serverUrlOData = LiveUrl + "/QuoteCopyEntitiesService.svc";

var jsonParameters = window.JSON.stringify(parameters);

$jbis.support.cors = true;

var dataResult = null;

$jbis.ajax({ type: "POST",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    async: false,
    data: jsonParameters,
    url: serverUrlOData + functionName,
    beforeSend: function (XMLHttpRequest) {
        /*Specifying this header ensures that the results will be returned as JSON.*/
        XMLHttpRequest.setRequestHeader("Accept", "application/json");
   }, success: function (data, textStatus, XmlHttpRequest) {
        if (data.d != null) {
            dataResult = data.d;
        } else {
            dataResult = data;
        }
    }, error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert("WCF Hata" + errorThrown.toString() + " - " + textStatus.toString());
    }
});

return dataResult;

服务代码:

public Guid CreateQuote(IOrganizationService service, Guid formId)
        {
            ColumnSet cols = new ColumnSet(true);
            Guid cloneId = Guid.Empty;
            Entity retrievedQuote = service.Retrieve("quote", formId, cols);

            Entity clone = Microsoft.Xrm.Client.EntityExtensions.Clone(retrievedQuote, false);
            clone.Attributes.Remove("quoteid");
            clone.Id = Guid.NewGuid();

            cloneId = service.Create(clone);

            return cloneId;
        }

界面

[WebGet(RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        [OperationContract]
        Guid CreateQuote(IOrganizationService service, Guid formId);

WCF中的Web.config

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.web>
        <compilation debug="true" targetFramework="4.0" />
        <httpModules>
            <clear />
        </httpModules>
    </system.web>
    <system.serviceModel>
        <protocolMapping>
            <add scheme="http" binding="webHttpBinding" bindingConfiguration="" />
        </protocolMapping>
        <bindings>
            <webHttpBinding>
                <binding name="webBinding" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:10:00" closeTimeout="00:10:00" maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" maxBufferPoolSize="524288" bypassProxyOnLocal="true" useDefaultWebProxy="false">
                    <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
                </binding>
            </webHttpBinding>
        </bindings>
        <services>
            <service name="QuoteCopyEntitiesService" behaviorConfiguration="QuoteCopyEntitiesService.ServiceBehavior">
                <endpoint address="" behaviorConfiguration="QuoteCopyEntitiesService.EndPointBehavior" binding="webHttpBinding" bindingConfiguration="webBinding" contract="IQuoteCopyEntitiesService" />
            </service>
        </services>
        <behaviors>
            <endpointBehaviors>
                <behavior name="EndPointBehavior">
                    <enableWebScript />
                </behavior>
            </endpointBehaviors>
            <serviceBehaviors>
                <behavior name="QuoteCopyEntitiesService.ServiceBehavior">
                    <serviceMetadata httpGetEnabled="true" />
                    <serviceDebug includeExceptionDetailInFaults="true" />
                    <dataContractSerializer maxItemsInObjectGraph="6553600" />
                </behavior>
            </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment aspNetCompatibilityEnabled="false" multipleSiteBindingsEnabled="true /">
    </system.serviceModel>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
        <directoryBrowse enabled="true" />
    </system.webServer>
</configuration>

我该如何解决?

0 个答案:

没有答案