[
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]