如何使用Javascript使用WCF Web服务?

时间:2015-02-19 12:41:30

标签: javascript web-services wcf soap

我对WCF没有任何经验,但现在需要使用WCF Web服务作为项目的一部分。我一直收到400错误请求错误

OPTIONS http://10.138.77.27:222/focisqmobile/Service1.svc?wsdl 400 (Bad Request)
  n.ajaxTransport.k.cors.a.crossDomain.send 
  n.extend.ajax 
  WCFJSON   
  (anonymous function)  
  n.Callbacks.j 
  n.Callbacks.k.fireWith    
  n.extend.ready    
  I 
XMLHttpRequest cannot load http://10.138.77.27:222/focisqmobile/Service1.svc?wsdl. Invalid HTTP status code 400

我的AJAX代码如下:

function WCFJSON() {


        Data = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
        "<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">" +
        "<s:Header>"+
        "<Action s:mustUnderstand=\"1\" xmlns=\"http://schemas.microsoft.com/ws/2005/05/addressing/none\">http://tempuri.org/IService1/getProduct</Action>"+
    "</s:Header>"+
        "<s:Body>" +
        "<getProduct xmlns=\"http://tempuri.org/\"/>" +
        "</s:Body>" +
        "</s:Envelope>";

        $.ajax({
            type: "POST", //GET or POST or PUT or DELETE verb
            url: "http://10.138.77.27:222/focisqmobile/Service1.svc?wsdl", // Location of the service
            data: Data, //Data sent to server
            contentType: "text/xml; charset=utf-8", // content type sent to server
            dataType: "xml", //Expected data format from server
            processData: true, //True or False
            success: ServiceSucceeded, //On Successfull service call
            error: ServiceFailed// When Service call fails
        });

    }

    function ServiceSucceeded(xml) {

        alert("Success");
        alert($.parseXML(xml));


    }

    function ServiceFailed(xhr) {
        alert("Error");
        alert($.parseXML(xhr));

    }

我正在使用的soap消息来自WCF测试客户端:

WCF Test Client Response

WCF测试客户端能够从服务器获得响应。

现在,我遇到的主要问题是:

  • 我是否需要更改Web服务中的任何内容以使其可以从Javascript中使用?
  • 我使用了错误的SOAP消息吗?
  • 为什么WCF Test Client能够在我无法获得响应时
  • 问题是客户端还是服务端?

我查看了大量的在线资源,但我无法实现它们。

我尝试在自己的PC上托管服务以避免CORS,但我仍然遇到同样的错误。

我已经在IIS中配置了自定义标头。

HTTP Custom Headers

0 个答案:

没有答案