[ 
https://issues.apache.org/jira/browse/HDFS-17040?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17729997#comment-17729997
 ] 

ASF GitHub Bot commented on HDFS-17040:
---------------------------------------

zeroflag commented on code in PR #5721:
URL: https://github.com/apache/hadoop/pull/5721#discussion_r1221138670


##########
hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/explorer.js:
##########
@@ -518,7 +518,8 @@
             url: url,
             data: file.file,
             processData: false,
-            crossDomain: true
+            crossDomain: true,
+            contentType: 'application/octet-stream'

Review Comment:
   @szetszwo Yes, this is the JS code running in the client browser. By default 
the contentType is set to `application/x-www-form-urlencoded` now it's 
explicitly set to `application/octet-stream`.
   
   However I a found a problem when testing with newer browsers with CORS 
enabled. It works when I try it via Knox or with a browser where CORS is 
disabled.
   
   But in new browsers with Cross-Origin Resource Sharing policy prevents 
changing the contentType since it's not included in the 
`Access-Control-Allow-Headers` header. Only the accept header is included in 
`Access-Control-Allow-Headers`.
   
   ```
   Access-Control-Allow-Headers: Accept
   Access-Control-Allow-Methods: PUT
   Access-Control-Allow-Origin: *
   ``` 
   
   The CrossOriginFilter contains the content type so I don't know why I only 
see `Accept`
   
    
https://github.com/apache/hadoop/blob/9de13f879af66a211b098166fd423b6900fc730d/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/security/http/CrossOriginFilter.java#L74
   





> WebHDFS UI should set content type to application/octet-stream when uploading 
> a file
> ------------------------------------------------------------------------------------
>
>                 Key: HDFS-17040
>                 URL: https://issues.apache.org/jira/browse/HDFS-17040
>             Project: Hadoop HDFS
>          Issue Type: Task
>            Reporter: Attila Magyar
>            Priority: Major
>              Labels: pull-request-available
>
> When uploading a file WebHDFS will set the content type to 
> application/x-www-form-urlencoded, as this is the default used by jQuery
> https://github.com/apache/hadoop/blob/160b9fc3c9255024c00d487b7fcdf5ea59a42781/hadoop-hdfs-project/hadoop-hdfs/src/main/webapps/hdfs/explorer.js#L516
> This causes knox to urlencode the request body so that uploading a CVS file 
> 1,2,3 will result 1%2C2%2C3.
> Instead of application/x-www-form-urlencoded I think the encoding should be 
> set to application/octet-stream.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to