如何在WCF服务中获取Xml作为字符串并使用javascript发送? - javascript

我创建了一个WCF Restful服务。

 public string Demo(String xmlString)
    {
        //do stuff 
    }

    [OperationContract]
    [WebInvoke(ResponseFormat = WebMessageFormat.Xml, RequestFormat = WebMessageFormat.Xml, Method = "Post", UriTemplate = "Demo",
    BodyStyle = WebMessageBodyStyle.Wrapped)]

string Demo(String xmlString);

我正在发送

$(document).ready(function () { 
    $("#btn").click(function () {
    var bhRequest = "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
            "<s:Body>" +
            "<GetSMC xmlns=\"http://tempuri.org/\">" +
              "<value><Root>MyValue</Root></value>" +
            "</GetSMC>" +
            "</s:Body>" +
        "</s:Envelope>";        
    var bhReq="<![CDATA[" + bhRequest + "]]>";
    alert(bhReq);

        $.ajax({
            url: 'http://localhost:15536/Plugins/MyPlugin/RemoteService/WebService.svc/Demo', 
            type: 'POST',   
            data: '{"xmlString":"'+ bhReq +'"}',
            contentType: "text/xml",
            dataType: "xml",
            success: function (data) {
                alert(Successfull);
            },
            error: function (data) {
                alert('Error Occurred');
            }
        });
    });
});

通话无法服务,并显示错误消息

  NetworkError:405方法不允许
  
  XML解析错误:格式不正确的位置:
  moz-nullprincipal:{70ef8883-a52b-4e70-a1ca-bdf5c611c23c}行号
  1,第1栏:
  
  {“ xmlString”:“ MyValue ]]>”}

我还传递了一些在服务中传递的文本,但xml字符串未传递。

我还完成了将服务请求和响应格式设置为json的操作,并使用json数据类型传递了脚本中的数据,这也无法正常工作。

请提供任何解决方案,如何将xml作为字符串值从javascript传递到我的wcf rest服务。

参考方案

用户有两种选择,一种是更改wcf以将消息格式化为json或正确设置soap的xml。

对于选项一,请阅读
http://www.codeproject.com/Articles/105273/Create-RESTful-WCF-Service-API-Step-By-Step-Guide

对于选项二
您可以阅读https://leonidius2010.wordpress.com/2011/05/16/98/

对于此选项,我首先看到示例XML出现了一些问题,然后将完整的xml封装在格式不正确的cdata中。

我还看到发送的有效负载中缺少xml doc类型。

为了获得正确的JavaScript格式,我将使用Visual Studio中的wcf测试客户端来调用您的端点,然后将复制并过去的有效负载发送到我的JavaScript文件中。

Javascript-从当前网址中删除查询字符串 - javascript

单击提交按钮后,我需要从网址中删除查询字符串值。我可以用jQuery做到这一点吗?当前网址:siteUrl/page.php?key=value 页面提交后:siteUrl/page.php 实际上,我已经从另一个带有查询字符串的页面着陆到当前页面。我需要在页面首次加载时查询字符串值以预填充一些详细信息。但是,一旦我提交了表格,我就需要删除查询字符串值。我已…

在提交时在表单操作中获取变量丢失 - javascript

            当表单由onchange事件提交时,它不会保留get变量view。任何想法为什么会发生这种情况?提交后,这是它进入的网址,index?month=February&year=2014<form action="index?view=list" class="pure-form pure-fo…

选择后显示输入元素 - javascript

我有一个表格,其中取决于用户的选择,输入元素是否可见。实际上,用户正在以另一种形式设置已定义的合作伙伴类型,并且如果选中该元素,则允许在该类型的合作伙伴上可见的元素类型1将显示以下元素:<input type="text" id="partner" name="partner" class=&…

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

JavaScript将PHP中的字符串和整数传递给函数 - javascript

我正在尝试将字符串和整数都传递到同一函数中,但是引号引起了问题。我发现错误出在echo $q->info部分,我必须在此代码上使用双引号。有人可以帮我写这个$q->info,但不能获得真正的价值吗?到目前为止,我的代码是<td><a href="javascript:add(<?php echo $q->i…