1

启用 WebHDFS 后,可以通过 curl 命令访问,但是通过 ajax 发出相同的请求时,会给出空响应。

例如,“NOTICE.txt”是添加到 HDFS 的文件,“new”是在 HDFS 根位置创建的新目录。

curl -i -X GET http://localhost:50070/webhdfs/v1/NOTICE.txt?op=GETFILESTATUS&user.name=hadoop

对于 ajax 我都尝试了:-

var url = 'http://localhost:50070/webhdfs/v1/NOTICE.txt?op=GETFILESTATUS&user.name=hadoop';
$.get(url, function(resp) {
   console.log(resp);
});

(和)

$.ajax({
    url:'http://localhost:50075/webhdfs/v1/NOTICE.txt?op=OPEN&user.name=hadoop',
    dataType:'application/json',
    success: function(resp) {
        console.log(resp);
    },
    type:'GET'
});

curl 命令有效,而 ajax 收到状态码为 200 的空响应。当尝试通过 POSTMAN 等休息客户端访问相同的 url 时,它有效!那么,为什么ajax调用不起作用?通过javascript ajax调用webHDFS rest api时我们应该传递任何额外的参数吗?

卷曲的结果:

HTTP/1.1 200 OK 过期时间:星期四,1970 年 1 月 1 日 00:00:00 GMT 设置 Cookie:hadoop.auth="u=hadoop&p=hadoop&t=simple&e=1412285804171&s=EmNooXqRZRuQLsMoz3AXP83+7zg=";Path=/ Content-类型:application/json 传输编码:chunked 服务器:Jetty(6.1.26)

{"FileStatus":{"accessTime":1412246288609,"blockSize":67108864,"group":"supergroup","length":101,"modificationTime":1412246288609,"owner":"vivek","pathSuffix": "","permission":"644","re​​plication":1,"type":"FILE"}}

但是ajax显示: 在此处输入图像描述

请求和响应的标头: 在此处输入图像描述

4

0 回答 0