Javascript 无法使用JQuery使用web服务(控制台发出cors,但返回xml)

Javascript 无法使用JQuery使用web服务(控制台发出cors,但返回xml),javascript,jquery,web-services,http,cross-domain,Javascript,Jquery,Web Services,Http,Cross Domain,我正在尝试使用JQuery使用web服务,我得到一个奇怪的结果,浏览器在控制台上显示cors错误,而在response选项卡中,我可以看到返回的XML 看到我的控制台了吗 看看我的回答 我试图访问的web服务计算产品的运费。 我不知道web服务是如何工作的,奇怪的是它被某种方式阻止了,因为web服务的目的是提供对应用程序的访问 以下是我试图执行的代码: <script> $().ready(function () { va

我正在尝试使用JQuery使用web服务,我得到一个奇怪的结果,浏览器在控制台上显示cors错误,而在response选项卡中,我可以看到返回的XML

看到我的控制台了吗

看看我的回答

我试图访问的web服务计算产品的运费。 我不知道web服务是如何工作的,奇怪的是它被某种方式阻止了,因为web服务的目的是提供对应用程序的访问

以下是我试图执行的代码:

   <script>
        $().ready(function () {


                var sendjson = {
                    "nCdEmpresa": "",
                    "sDsSenha": "",
                    "nCdServico": "41106",
                    "sCepOrigem": "37540000",
                    "sCepDestino": "37540000",
                    "nVlPeso": "1",
                    "nCdFormato": "1",
                    "nVlComprimento": "20",
                    "nVlAltura": "5",
                    "nVlLargura": "15",
                    "nVlDiametro": "0",
                    "sCdMaoPropria": "s",
                    "nVlValorDeclarado": "200",
                    "sCdAvisoRecebimento": "s"
                }



                $.ajax({
                    type: "GET",

                    cors: true,
                    url: "http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx/CalcPrecoPrazo",
                    data: sendjson,
                    dataType: "application/xml",


                    success: function (data) {
                        console.log(data);
                    },
                    error: function (data, err)
                    {
                        alert(err);
                    }

                });
        });
    </script>

$().ready(函数(){
var sendjson={
“nCdEmpresa”:“第,
“sDsSenha”:“,
“nCdServico”:“41106”,
“sCepOrigem”:“37540000”,
“sCepDestino”:“37540000”,
“nVlPeso”:“1”,
“NCD格式”:“1”,
“nVlComprimento”:“20”,
“nVlAltura”:“5”,
“nVlLargura”:“15”,
“nVlDiametro”:“0”,
“sCdMaoPropria”:“s”,
“nVlValorDeclarado”:“200”,
“sCdAvisoRecebimento”:“s”
}
$.ajax({
键入:“获取”,
科尔斯:是的,
url:“http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx/CalcPrecoPrazo",
数据:sendjson,
数据类型:“应用程序/xml”,
成功:功能(数据){
控制台日志(数据);
},
错误:函数(数据,错误)
{
警惕(err);
}
});
});

如果有人能告诉我如何使用这些web服务,我将非常高兴。答案也可以是C语言,使用HttpClient或其他任何语言。

您需要替换ajax调用参数

cors : true  to crossDomain: true,
dataType: 'application/xml' to contentType : 'application/xml'
Ajax调用:

         $.ajax({
                type: "GET",

                crossDomain: true,
                url: "http://ws.correios.com.br/calculador/CalcPrecoPrazo.asmx/CalcPrecoPrazo",
                data: sendjson,
                contentType : 'application/xml',


                success: function (data) {
                    console.log(data);
                },
                error: function (data, err)
                {
                    alert(err);
                }

            });

这是一个CORS问题,尝试在ajax请求中添加一个属性,如下所示
crossDomain:true
而不是
CORS:true
这对我也不起作用,我认为服务器必须知道并发送
Access Control Allow Origin:
头,在我的情况下,服务器没有发送它,我收到与OP相同的错误,
(原因:CORS标头“Access Control Allow Origin”丢失)
问题是因为服务器没有返回所需的CORS标头。客户端请求(以及通过代理发送的任何附加头/数据)与此问题无关。它通过更改两个头在我的计算机上工作。