Javascript jsonp请求中未定义的responseText
我正在使用$.ajax向https上的服务器准备的api发送jsonp请求 我的脚本如下:Javascript jsonp请求中未定义的responseText,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在使用$.ajax向https上的服务器准备的api发送jsonp请求 我的脚本如下: var sUrl = "https://localhost/api/" + document.getElementById('query').value + "?apikey=c13eb63d-b9ee-4ceb-89fe-944072deddbb&fmt=json&limit=&query=" + document.getElementById('query
var sUrl = "https://localhost/api/" + document.getElementById('query').value +
"?apikey=c13eb63d-b9ee-4ceb-89fe-944072deddbb&fmt=json&limit=&query=" + document.getElementById('query').value;
$.ajax({
type: 'GET',
url: sUrl,
dataType: 'jsonp',
jsonp: false,
async:false,
crossDomain : true,
complete: function(jqXHR, textStatus){
alert(jqXHR);
alert(jqXHR.responseText);
}
});
我的请求将被发送,我可以在我的浏览器中接收结果,这是我的响应正文:
{“relatedid_restriction”:null,“purpose”:“缓解”,“asn”:null,“rir”:null,“alternativeid”:null,“cc”:null,“detecttime”:“2014-04-08T17:34:31Z”,“address”:“google.com”,“alternativeid_restriction”:null,“id”:“2bdd4e07-26ba-4dc2-99a8-bdea54bf3d4f”,“guid”:“所有人”,“严重性”:null,“评估”:“search”,“rdata”:null,“search google.com”,“asn_desc”:null,“relatedid”:null,“reporttime”:“2014-04-08T17:34:31Z”,“信心”:“50”,“限制”:“私有”,“前缀”:null}{“relatedid_限制”:null,“目的”:“缓解”,“asn”:null,“rir”:null,“替代id”:null,“cc”:null,“检测时间”:“2014-04-08T17:35:14Z”,“地址”:“google.com”,“替代id_限制”:null,“id”:”1df23bea-ab15-4410-aab4-d2c538a385fd,“guid”:“所有人”、“严重性”:null,“评估”:“搜索”、“rdata”:null,“描述”:“搜索google.com”,“asn_desc”:null,“相关ID”:null,“报告时间”:“2014-04-08T17:35:14Z”,“信心”:“50”,“限制”:“私有”,“前缀”:null}
现在是第一个警报“警报(jqXHR);“返回[object object],但返回第二个”警报(jqXHR.responseText);“返回未定义的
如何在javascript中检索响应正文文本
谢谢如果您使用jsonp,您需要进行函数调用。如下所示:
echo $_GET['callback'] . "(" . json_encode($DATA) . ");";
因为jsonp需要调用函数。我认为jQuery将添加一个GET变量,名称为callback
您可以这样做:
jsonp: "callback",
success : function(data){
console.log(data);
}
更多信息和示例:来自jquery文档: text和xml类型返回数据而不进行任何处理。数据仅通过jqXHR对象的responseText或responseXML属性传递给成功处理程序
也就是说,responseText仅在
datatype=“text”时有效“
,因此,如果不需要jsonp,请更改数据类型,或者在完整回调中使用第一个参数,该参数应该是表示json响应的对象,该响应不是jsonp。”。请研究什么是JSONP。它与普通的ajax请求非常不同,见鬼,它根本不是ajax请求。