Javascript 无法使用JQuery使用web服务(控制台发出cors,但返回xml)
我正在尝试使用JQuery使用web服务,我得到一个奇怪的结果,浏览器在控制台上显示cors错误,而在response选项卡中,我可以看到返回的XML 看到我的控制台了吗 看看我的回答 我试图访问的web服务计算产品的运费。 我不知道web服务是如何工作的,奇怪的是它被某种方式阻止了,因为web服务的目的是提供对应用程序的访问 以下是我试图执行的代码: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
<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标头。客户端请求(以及通过代理发送的任何附加头/数据)与此问题无关。它通过更改两个头在我的计算机上工作。