Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript通过AJAX从URL获取JSON响应_Javascript_Jquery_Html_Ajax - Fatal编程技术网

使用Javascript通过AJAX从URL获取JSON响应

使用Javascript通过AJAX从URL获取JSON响应,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我对Javascript比较陌生,我一直在尝试使用AJAX从URL获取JSON数据 url返回一个数组,其中包含我想要请求/获取的字符,然后处理数据以html显示。该url是: 我使用的代码如下所示,问题是我似乎没有收到任何响应。此外,我不知道request info变量应该是什么: function ajax_request() { requestInfo=''; var params = JSON.stringify(requestInfo); $.ajax({ type: "G

我对Javascript比较陌生,我一直在尝试使用AJAX从URL获取JSON数据

url返回一个数组,其中包含我想要请求/获取的字符,然后处理数据以html显示。该url是:

我使用的代码如下所示,问题是我似乎没有收到任何响应。此外,我不知道request info变量应该是什么:

function ajax_request() {

requestInfo='';

var params = JSON.stringify(requestInfo);

$.ajax({
  type: "GET",
  url: 'http://stark-tundra-9859.herokuapp.com/locations',
  data: params,
  contentType: "application/json",
  dataType: "json",
  converters: {
    'text json': true
  },

  success: function(response) {
    $("#responseParagraph").html(response);

  },
  error: function(error) {
    $("#responseParagraph").html(error.responseText);

  }
});

}
@对于agam360,我还使用JQUERY完成了该代码的一个版本,我在控制台中收到一条消息,如下所示:

获得200 OK 198ms

响应头 连接保持活动状态 内容长度154 内容类型应用/json;字符集=utf-8 服务器瘦1.5.1代码名直剃刀 X-Content-Type-Options-nosniff

请求头 接受application/json、text/javascript、/;q=0.01 接受编码gzip,放气 接受语言es,es;q=0.8,在美国;q=0.5,en;q=0.3 连接保持活动状态 主持人stark-tundra-9859.herokuapp.com 原点为空 用户代理Mozilla/5.0(Windows NT 6.1;rv:16.0)Gecko/20100101 Firefox/16.0

用于接收该答案的代码如下所示:

function json_request() {

$.getJSON(url,
    function(data) {
        alert(data);
        $('#responseParagraph').append("<p>"+data.responseMessage+"</p>");
    });

}
函数json_request(){ $.getJSON(url, 功能(数据){ 警报(数据); $(“#responseParagraph”).append(“”+data.responseMessage+”

”); }); } 在这个JQUERY中,我似乎没有正确地从JSON请求接收数据。也许我处理得很糟糕


我将非常感谢任何帮助提前

要回答这个问题,我需要问你两件事:
1) 您在哪个域上运行此脚本?(与“”在同一服务器上?)
因为该URL不允许(跨源资源共享)

2) 打开您的控制台(在chrome:Ctrl+shift+j中)并告诉我们您收到了什么错误消息
,如果您收到任何错误消息

如果您对第一个问题的回答是(意味着您没有在同一台主机上运行脚本),那么,如果您可以控制该页面,请通过发送以下标题来启用CORS(请在实施之前阅读一些与安全相关的信息):

更多特定于语言的实现可以在 (如果您不愿意使用CORS,还可以阅读有关跨域请求的“”实现)

另一方面,(您的答案是),我们需要查看您的服务器端相关代码,以及在客户端抛出的任何错误消息

注意:据我所见(到目前为止-在发布我的答案5分钟后),URL返回一个“500-内部服务器错误””-您的问题似乎与服务器端的问题有关

更新, 获取数据后,需要将其作为JSON对象访问,
像这样:


关于用jQuery实现JSONP,我在中进行了一次快速搜索,您可能想看一看:

因为这似乎是一个外域,它似乎只返回JSON(而不是JSONP),所以不能使用Ajax直接连接到它。请看。您的网站是否也在
stark-tundra-9859.herokuapp.com
上运行?另外,我不知道您是否可以使用
contentType:“application/json”
(或
json.stringify
)和GET请求(P.S.
contentType
用于请求,而不是响应)。它确实是一个外来域(我为测试而设置),那么@FelixKling从这个URL请求这个JSON数据的解决方案是哪一个呢?@JoseSabas,JSON_request()不起作用吗?现在发生了什么?感谢@agam360,回答您的问题:1)不,我没有在同一个域上运行此脚本。2) 控制台显示为空白,没有任何消息。您可以控制该页面吗?你能允许(或尝试允许)CORS吗?你试过使用JSONP吗?我相信我可以添加CORS(尽管以前从未听说过)。不,我没有尝试过使用JSONP,为什么这么说,它应该与JSONP一起工作?@JoseSabas,客户端代码(不是来自同一主机)不能只请求它想要的每个页面,如果页面/主机不允许的话。为了克服这种情况,您可以使用CORS(允许外部JavaScript访问您的页面)或JSONP,这两种方法非常巧妙,以获得相同的结果。如果您在外部运行脚本(例如从其他主机运行),并且希望它访问该页面,请使用这些技术之一。好的@agam360-perfect,谢谢。我将尝试使用JSONP。实现这一巧妙技巧的妙计?哈哈
Access-Control-Allow-Origin: *
data[0].lat // will hold the lat value of the first object in the JSON wrapper object