您好我正在从API请求数据,我想将结果添加到具有特定ID的Div。 它工作得很好但是当我尝试为它创建一个自定义函数时它停止工作。
它与我的fullrequest变量有关。但我不知道怎么做。
我的HTML:
<script>
OctoGET0('GET', '/api/connection', 'current.state' , '#play')
</script>
我的jquery:
function webAPI(method, location , data, request , id ) {
var fullrequest = 'response.'+request;
$.ajax({
url: Url + location ,
type: method,
dataType: 'json',
beforeSend: setHeader,
data: data,
success: (function(response) { $(id).html(fullrequest)})
})
[编辑]
我要求的JSON
{
"current": {
"baudrate": null,
"state": "Closed",
"port": null
},
"options": {
"portPreference": null,
"autoconnect": false,
"baudrates": [
250000,
230400,
115200,
57600,
38400,
19200,
9600
],
"ports": [
"/dev/ttyAMA0"
],
"baudratePreference": null
}
}
有些请求超过2层。
答案 0 :(得分:0)
我不确定你到底想要做什么,但你现在的代码总是会附加&#34; response.current.state&#34;到#play div。我认为您更可能想要将与请求连接的API的响应附加到div中。此外,您不应该使用括号包装您的成功函数。最终结果将是:
[编辑]
function webAPI(method, location , data, request , id ) {
$.ajax({
url: Url + location ,
type: method,
dataType: 'json',
beforeSend: setHeader,
data: data,
success: function(response) {
var returnValue = response;
var parts = request.split('.');
for (var i=0;i < parts.length;i++) {
if (typeof returnValue == 'Object') {
returnValue = returnValue[parts[i]];
}
}
$(id).html(returnValue);
}
});
显然必须进行测试和重新设计以满足您的需求。主要问题是您尝试将对象属性作为不起作用的字符串访问