即使使用 JSONP 也无法从外部服务获取 JSON
Can't get JSON from external service even using JSONP
您好,我正在尝试使用来自站点的 json 数据,但我无法使用 jsonp 执行此操作,不确定是我编码有误还是服务。
<script>
$(function () {
$("#frmInstrumento").submit(function(event) {
alert("hello");
$.ajax({
url: "https://www.camaradenegocios.com/api/get/",
// The name of the callback parameter, as specified by the YQL service
jsonp: "promotions",
// Tell jQuery we're expecting JSONP
dataType: "jsonp",
// Work with the response
success: function( response ) {
alert(response);
console.log( response ); // server response
}
});
});
});
</script>
要使用的 url 是 https://www.camaradenegocios.com/api/get/promotions 如果我浏览,我可以看到数据,但不能用 Jquery 使用它。
尝试利用 $.getJSON()
;响应似乎是 JSON
,而不是 JSONP
$.getJSON("https://www.camaradenegocios.com/api/get/promotions"
, function(data) {
console.log(JSON.stringify(data, null, 2));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
我希望你已经包含了 jQuery 库。如果没有,请在您的 HTML 页眉中加入类似这样的内容:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
我认为如果您尝试获取 JSON 数据而不是 JSONP,它应该可以工作。用下面提到的代码替换您的代码将按预期工作,获取我们在浏览 URL.
时看到的响应数组
<script>
$(function () {
$("#frmInstrumento").submit(function(event) {
alert("hello");
$.ajax({
url: "https://www.camaradenegocios.com/api/get/promotions",
// The name of the callback parameter, as specified by the YQL service
// Tell jQuery we're expecting JSON
dataType: "json",
// Work with the response
success: function( response ) {
alert(response);
console.log( response ); // server response
}
});
});
});
</script>
现在 response
将有原始响应,您必须将其字符串化以使其成为可读格式。您也可以将此响应作为一个对象来使用,并从中提取属性和成员。
现在我可以使用它了,但不确定提供程序出了什么问题。我也在阅读有关提交的内容,因为它会进行回发,因此不会检索数据。
$(function(){
loadData = function(){
$.ajax({
url: 'https://www.camaradenegocios.com/api/get/promotions',
method: 'GET',
dataType: 'json',
crossDomain: true,
success: function(response){
$.each(response, function(key, data) {
alert(key);
$.each(data, function (index, data) {
console.log('index', data);
alert(data);
})
})
}
});
};
loadData();
});
现在只有我要正确解析数据了。
谢谢。
您好,我正在尝试使用来自站点的 json 数据,但我无法使用 jsonp 执行此操作,不确定是我编码有误还是服务。
<script>
$(function () {
$("#frmInstrumento").submit(function(event) {
alert("hello");
$.ajax({
url: "https://www.camaradenegocios.com/api/get/",
// The name of the callback parameter, as specified by the YQL service
jsonp: "promotions",
// Tell jQuery we're expecting JSONP
dataType: "jsonp",
// Work with the response
success: function( response ) {
alert(response);
console.log( response ); // server response
}
});
});
});
</script>
要使用的 url 是 https://www.camaradenegocios.com/api/get/promotions 如果我浏览,我可以看到数据,但不能用 Jquery 使用它。
尝试利用 $.getJSON()
;响应似乎是 JSON
,而不是 JSONP
$.getJSON("https://www.camaradenegocios.com/api/get/promotions"
, function(data) {
console.log(JSON.stringify(data, null, 2));
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
我希望你已经包含了 jQuery 库。如果没有,请在您的 HTML 页眉中加入类似这样的内容:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
我认为如果您尝试获取 JSON 数据而不是 JSONP,它应该可以工作。用下面提到的代码替换您的代码将按预期工作,获取我们在浏览 URL.
时看到的响应数组<script>
$(function () {
$("#frmInstrumento").submit(function(event) {
alert("hello");
$.ajax({
url: "https://www.camaradenegocios.com/api/get/promotions",
// The name of the callback parameter, as specified by the YQL service
// Tell jQuery we're expecting JSON
dataType: "json",
// Work with the response
success: function( response ) {
alert(response);
console.log( response ); // server response
}
});
});
});
</script>
现在 response
将有原始响应,您必须将其字符串化以使其成为可读格式。您也可以将此响应作为一个对象来使用,并从中提取属性和成员。
现在我可以使用它了,但不确定提供程序出了什么问题。我也在阅读有关提交的内容,因为它会进行回发,因此不会检索数据。
$(function(){
loadData = function(){
$.ajax({
url: 'https://www.camaradenegocios.com/api/get/promotions',
method: 'GET',
dataType: 'json',
crossDomain: true,
success: function(response){
$.each(response, function(key, data) {
alert(key);
$.each(data, function (index, data) {
console.log('index', data);
alert(data);
})
})
}
});
};
loadData();
});
现在只有我要正确解析数据了。
谢谢。