我使用vanilla javascript对我的API进行AJAX调用。
以下是我点击一个简单按钮时调用的代码:
<component>
<sequenceNumber value="4"/>
<observation classCode="OBS" moodCode="EVN">
<!--templateID for the Numeric Response Pattern-->
<templateId root="2.16.840.1.113883.10.20.33.4.4"/>
<languageCode></languageCode>
<entryRelationship typeCode="REFR">
<!--templateID for Response Media Pattern template-->
<!--<templateId root="2.16.840.1.113883.10.20.33.4.2"/>-->
</entryRelationship>
<id extension="ob4" root="2.16.840.1.113883.3.1817.1.6"/>
<code code="q4" codeSystem="Continua-Q-OID">
<originalText>How many hours did you sleep last night?</originalText>
</code>
<statusCode code="COMPLETED"/>
<value xsi:type="INT" value="7"/>
<referenceRange typeCode="REFV">
<!--templateID for the Response Reference Range Pattern-->
<templateId root="2.16.840.1.113883.10.20.33.4.3"/>
<observationRange>
<text></text>
<value xsi:type="IVL_INT">
<low value="0"/>
<high value="24"/>
</value>
</observationRange>
</referenceRange>
</observation>
</component>
但我在第
行得到“回调不是一个功能”回调(xmlhttp.responseText);
以下是我的回调函数:
getUserByUserId : function (callback){
var userid = localStorage.getItem('userid');
var userApiUrl = "http://174.129.30.174:8080/users/"+userid;
var xmlhttp = micropaywall.getAjaxInstance();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var response = JSON.parse(xmlhttp.responseText);
callback(xmlhttp.responseText);
console.log(response);
console.log(xmlhttp.responseText);
}
};
xmlhttp.open("GET", userApiUrl, true);
xmlhttp.send(null);
}
请纠正我错误的地方。
答案 0 :(得分:0)
如果您不需要更改&#34;回拨&#34;函数然后你可以直接调用它:
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var response = JSON.parse(xmlhttp.responseText);
getUserByUserIdCallback(xmlhttp.responseText);
console.log(response);
console.log(xmlhttp.responseText);
}
如果在调用getUserByUserId
函数时需要不同的行为,则只需要传入回调函数。