我正在尝试获取此网址的响应。但是,当我检查控制台时出现错误消息:
未捕获的TypeError:响应不是函数
可能出现的问题是什么?
var uri = pbxApi+"/conference/participants/"+circle+"/"+data.conference+"/"+data.uniqueid+'?jsonp=response';
getJsonData(uri, function(res){
});
这是我的功能。
var getJsonData = function(uri,callback){
$.ajax({
type: "GET",
dataType: "jsonp",
url: uri,
jsonpCallback: 'response',
cache: false,
contentType: "application/json",
success: function(json){
callback(json);
}
});
}
这是我的回答:
response({"_id":"56177d3b3f2dc8146bd8565c","event":"ConfbridgeJoin","channel":"SIP/192.168.236.15-0000005e","uniqueid":"1444379955.224","conference":"0090000293","calleridnum":"0090000290","calleridname":"0090000290","__v":0,"status":false,"sipSetting":{"accountcode":"0302150000","accountcode_naisen":"203","extentype":0,"extenrealname":"UID3","name":"0090000290","secret":"Myojyo42_f","username":"0090000290","context":"innercall_xdigit","gid":101,"cid":"0090000018"}})
答案 0 :(得分:2)
正如here所写:
sonpCallback 类型:字符串或函数() 指定JSONP请求的回调函数名称。将使用此值代替jQuery自动生成的随机名称。最好让jQuery生成一个唯一的名称,因为它可以更容易地管理请求并提供回调和错误处理。如果要为GET请求启用更好的浏览器缓存,可能需要指定回调。从jQuery 1.5开始,你也可以使用一个函数进行这个设置,在这种情况下,jsonpCallback的值被设置为该函数的返回值。
因此,通过设置ajax对象的jsonpCallback
属性,您将传递一个函数的名称(或来自 jQuery 1.5 的函数本身),该名称应被视为回调。这意味着如果将其值设置为'response'
,则应声明response()
函数。
答案 1 :(得分:0)
工作示例:
// first declare you function
function response(obj){console.log(obj)};
$.ajax({
url:'http://www.mocky.io/v2/561dedcb1000002811f142e5',
dataType:'jsonp',
jsonp:false, // make it to false, to use your function on JSON RESPONSE
jsonpCallback: 'response',
success: function(ret){
console.log('ok');
}
});
答案 2 :(得分:0)
只需使用此类型的编码即可返回您的回调数据。
function getJsonData(uri,callback)
{
$.ajax({
type: "GET",
dataType: "json",
url: uri,
cache: false,
success: function(json){
callback(json);
}
});
}
getJsonData(function(resp)
{
console.log(resp);
}
现在你在console.log中得到了返回数据