Javascript 未捕获类型错误:响应不是函数
我正在尝试获取此url的响应。但当我检查控制台时,会显示错误消息: 未捕获类型错误:响应不是函数 可能的问题是什么Javascript 未捕获类型错误:响应不是函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在尝试获取此url的响应。但当我检查控制台时,会显示错误消息: 未捕获类型错误:响应不是函数 可能的问题是什么 var uri = pbxApi+"/conference/participants/"+circle+"/"+data.conference+"/"+data.uniqueid+'?jsonp=response'; getJsonData(uri, function(res){ }); 这是我的职责 var getJsonData = function(uri,callback
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"}})
正如上面所写的:
山猫
类型:字符串或函数()
指定JSONP请求的回调函数名。将使用此值代替jQuery自动生成的随机名称。最好让jQuery生成一个唯一的名称,因为这样可以更容易地管理请求并提供回调和错误处理。当您希望对GET请求启用更好的浏览器缓存时,可能需要指定回调。从jQuery1.5开始,您还可以使用函数进行此设置,在这种情况下,jsonpCallback的值被设置为该函数的返回值
var getJsonData = function(uri,callback){
$.ajax({
type: "GET",
dataType: "jsonp",
url: uri,
jsonpCallback: 'response',
cache: false,
contentType: "application/json",
success: function(json){
callback(json);
}
});
}
因此,通过设置ajax对象的jsonpCallback
属性,您正在传递一个函数名(或来自jQuery 1.5的函数本身),该函数应被视为回调函数。这意味着如果将其值设置为'response'
,则应声明response()
函数 工作示例:
// 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');
}
});
设置一个只需使用这种类型的编码返回回调数据
function getJsonData(uri,callback)
{
$.ajax({
type: "GET",
dataType: "json",
url: uri,
cache: false,
success: function(json){
callback(json);
}
});
}
getJsonData(function(resp)
{
console.log(resp);
}
现在您在控制台中获得了返回数据。log检查我已经在代码中声明的
jsonpCallback:“response',
。只需提到,success:function(json){callback(json);}
是renundat,如果我使用这个success:callback(json)
,您可以简单地使用success:callback(json)
而不是这个success:function(json){callback(json);}
json将是未定义的