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 有効期限: Thu, 01-Jan-1970 00:00:00 GMT Set-Cookie: hadoop.auth="u=hadoop&p=hadoop&t=simple&e=1412285804171&s=EmNooXqRZRuQLsMoz3AXP83+7zg=";Path=/ Content-タイプ: application/json Transfer-Encoding: チャンク サーバー: Jetty(6.1.26)

{"FileStatus":{"accessTime":1412246288609,"blockSize":67108864,"group":"supergroup","length":101,"modificationTime":1412246288609,"owner":"vivek","pathSuffix": "","パーミッション":"644","レプリケーション":1,"タイプ":"ファイル"}}

しかし、ajax は次のことを示しています。 ここに画像の説明を入力

リクエストとレスポンスのヘッダー: ここに画像の説明を入力

4

0 に答える 0