我在 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: { …Run Code Online (Sandbox Code Playgroud) function.json文件非常相似.我太了解了解差异.
我会选择哪种场景?
当从创建一个对象ConvertFrom-Json就不会创建一个“正常”的对象,并且缺少GetEnumerator()和keys。
下面是一些演示代码:
$string = '{
"OBJECT": "SOP10107",
"OBJECTKEY": "2|OSTD-9999 "
}'
$obj = $string | ConvertFrom-Json
$obj
# no results returned
$obj | % getEnumerator | % {
$_.key
$_.value
}
# no results returned
$obj.keys
$myobj = @{
"key1" = "val1"
"key2" = "val2"
}
$myobj
# returns expected result
$myobj | % getEnumerator | % {
$_.key
$_.value
}
# returns expected result
$myobj.keys
Run Code Online (Sandbox Code Playgroud)