我一定非常害怕JavaScript,但我已经在这几天里一直在努力,而且我没有取得任何进展。
总而言之,我尝试使用UPS的REST API。我可以用Postman做到这一点,我可以用PowerShell做到没有任何问题。 JavaScript是一个完全不同的故事,我无处可去。
我已经尝试了XMLHttpRequest和fetch(),我已经尝试了很多不同的组合,我无法开始列出它们。
下面是我在我的网络应用程序中的JS功能(它是在一个字段的更改时触发的)。 JS函数调用Azure函数(Azure函数可以从Postman和PowerShell中运行。)
function getUpsShipTime() {
var jsonBody = {
"DeliveryDate": "2017-06-06",
"ShippingCode": "GND",
"ShipFrom": {
"Address": {
"StateProvinceCode": "CA",
"CountryCode": "US",
"PostalCode": "90210"
},
},
"ShipTo": {
"Address": {
"StateProvinceCode": "FL",
"CountryCode": "US",
"PostalCode": "32830"
}
}
}
var uri = "https://MyAzureFunction.azurewebsites.net/api/HttpTriggerPowerShell1?code=MyAuthCode=="
var req = new Request(uri, {
method: 'post',
mode: 'no-cors',
headers: {
'Content-type': 'application/json'
},
body: JSON.stringify(jsonBody)
});
fetch(req)
.then(function (response) {
console.log(response);
return response.blob();
}).then(function (blob) {
console.log(blob);
});
}
当函数运行时,我得到以下内容:
这是我从邮递员那里得到的:
我做错了什么?
答案 0 :(得分:3)
您以no-cors
模式请求URL,这就是返回opaque响应的原因。实际上,这就是你所要求的。
相反,我建议您按照here所述为Azure功能配置CORS,并将模式更改为cors
。