Post 到 Azure FHIR 服务器方法验证失败 401
Post to Azure FHIR Server method Fail to Authentication Failed 401
我有一个 Azure FHIR 服务器,我已经用 POSTMAN 测试过我能够读取患者以及 POST 使用 POSTMAN 和 Oauth 令牌的患者。
我现在已经创建了一个 JavaScript Post 方法,这样我就可以 post 来自我自己的方法的数据,而不是使用 POSTMAN。
我遵循了这里的基本指导 Creating a resource
我可以使用 POSTMAN 获取访问令牌,并在我的 POST 方法中使用该访问令牌。
我的方法和post数据如下。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
(async () => {
const rawResponse = await fetch('https://smarthealth.azurehealthcareapis.com/Patient', {
method: 'POST',
Authorization: 'Bearer DGRijc8LrnjCrhRFRSn2Jnf89q2wGT_gxNHtJt',
headers: {
'Access-Control-Allow-Origin': '*',
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': 'http://localhost:3000',
'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS'
},
body: JSON.stringify({
"resourceType": "Patient",
"id": "9184e31a-a2b3-4b8d-9032-d5377cabaa08",
"extension": [
{
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
"extension": [
{
"url": "ombCategory",
"valueCoding": {
"system": "urn:oid:2.16.840.1.113883.6.238",
"code": "2106-3",
"display": "White"
}
},
{
"url": "text",
"valueString": "White"
}
]
},
{
"url": "http://hl7.org/fhir/StructureDefinition/patient-birthPlace",
"valueAddress": {
"city": "Mashpee",
"state": "Massachusetts",
"country": "US"
}
},
],
"name": [
{
"use": "official",
"family": "Kutch",
"given": [
"Sherron"
]
}
],
"gender": "female",
"birthDate": "2009-04-29",
})
});
const content = await rawResponse.json();
console.log(content);
})();
</script>
</head>
<body>
Javascript Azure FHIR Post Request Test
</body>
</html>
您可以尝试按照以下格式发送请求。
$("#btnPostToAzureFHIR").click(function () {
var yourPostDataFormat = {
resourceType: "Patient",
id: "9184e31a-a2b3-4b8d-9032-d5377cabaa08"
}
$.ajax({
type: "POST",
url: "https://smarthealth.azurehealthcareapis.com/Patient",
data: JSON.stringify(yourPostDataFormat),
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization','Bearer DGRijc8LrnjCrhRFRSn2Jnf89q2wGT_gxNHtJt');
},
dataType: "json",
contentType: "application/json",
success: function (data) {
console.log(data);
}
});
Note: Bind your parameter in key value pair on yourPostDataFormat
then pass on JSON.stringify(yourPostDataFormat)
section. Hope it would post your request with token
我有一个 Azure FHIR 服务器,我已经用 POSTMAN 测试过我能够读取患者以及 POST 使用 POSTMAN 和 Oauth 令牌的患者。
我现在已经创建了一个 JavaScript Post 方法,这样我就可以 post 来自我自己的方法的数据,而不是使用 POSTMAN。 我遵循了这里的基本指导 Creating a resource 我可以使用 POSTMAN 获取访问令牌,并在我的 POST 方法中使用该访问令牌。
我的方法和post数据如下。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
(async () => {
const rawResponse = await fetch('https://smarthealth.azurehealthcareapis.com/Patient', {
method: 'POST',
Authorization: 'Bearer DGRijc8LrnjCrhRFRSn2Jnf89q2wGT_gxNHtJt',
headers: {
'Access-Control-Allow-Origin': '*',
'Accept': 'application/json',
'Content-Type': 'application/json',
'Access-Control-Allow-Origin': 'http://localhost:3000',
'Access-Control-Allow-Methods': 'PUT, GET, POST, DELETE, OPTIONS'
},
body: JSON.stringify({
"resourceType": "Patient",
"id": "9184e31a-a2b3-4b8d-9032-d5377cabaa08",
"extension": [
{
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
"extension": [
{
"url": "ombCategory",
"valueCoding": {
"system": "urn:oid:2.16.840.1.113883.6.238",
"code": "2106-3",
"display": "White"
}
},
{
"url": "text",
"valueString": "White"
}
]
},
{
"url": "http://hl7.org/fhir/StructureDefinition/patient-birthPlace",
"valueAddress": {
"city": "Mashpee",
"state": "Massachusetts",
"country": "US"
}
},
],
"name": [
{
"use": "official",
"family": "Kutch",
"given": [
"Sherron"
]
}
],
"gender": "female",
"birthDate": "2009-04-29",
})
});
const content = await rawResponse.json();
console.log(content);
})();
</script>
</head>
<body>
Javascript Azure FHIR Post Request Test
</body>
</html>
您可以尝试按照以下格式发送请求。
$("#btnPostToAzureFHIR").click(function () {
var yourPostDataFormat = {
resourceType: "Patient",
id: "9184e31a-a2b3-4b8d-9032-d5377cabaa08"
}
$.ajax({
type: "POST",
url: "https://smarthealth.azurehealthcareapis.com/Patient",
data: JSON.stringify(yourPostDataFormat),
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization','Bearer DGRijc8LrnjCrhRFRSn2Jnf89q2wGT_gxNHtJt');
},
dataType: "json",
contentType: "application/json",
success: function (data) {
console.log(data);
}
});
Note: Bind your parameter in key value pair on
yourPostDataFormat
then pass onJSON.stringify(yourPostDataFormat)
section. Hope it would post your request with token