Javascript 使用post将十六进制文件数据发送到其他域

Javascript 使用post将十六进制文件数据发送到其他域,javascript,java,ajax,xmlhttprequest,Javascript,Java,Ajax,Xmlhttprequest,通过手动构造头,是否可以使用多部分表单数据发送此表单的请求。对于该文件,内容/mime类型也是什么。当我创建这种形式的请求时,请求到达了服务器,但在那里收到的数据为空。我还收到一条跨域请求的错误消息,因为它不是jsonp。有没有一种方法可以实现这一点,因为它是一个post请求。Java用作服务器端。对于跨域请求,您需要将跨源资源共享(CORS)头添加到服务器:类似于访问控制允许源:。不完全确定这在Java服务器中的位置,但是如果您以前为服务器设置过头,CORS头也会随之设置。我不完全确定是否通过

通过手动构造头,是否可以使用多部分表单数据发送此表单的请求。对于该文件,内容/mime类型也是什么。当我创建这种形式的请求时,请求到达了服务器,但在那里收到的数据为空。我还收到一条跨域请求的错误消息,因为它不是jsonp。有没有一种方法可以实现这一点,因为它是一个post请求。Java用作服务器端。

对于跨域请求,您需要将跨源资源共享(CORS)头添加到服务器:类似于
访问控制允许源:
。不完全确定这在Java服务器中的位置,但是如果您以前为服务器设置过头,CORS头也会随之设置。我不完全确定是否通过JavaScript发送原始二进制文件。也许其他人更清楚。

基本上,您只需执行xhr POST/PUT请求。但首先要将文件输入到输入中

以下是我在一个旧项目中发现的一个put示例:

const fileInput = document.getElementById('file-input')
const file = fileInput.files[0]
const xhr = new XMLHttpRequest()

xhr.onerror = (e) => {
  console.log(e)
}

xhr.upload.addEventListener('progress', (e) => {
  // handle notifications about upload progress: e.loaded / e.total
  const { loaded, total } = e
  console.log(`${loaded} / ${total}`)
}, false)

xhr.onreadystatechange = () => {
  if (xhr.readyState === XMLHttpRequest.DONE) {
    if (xhr.status >= 200 && xhr.status <= 299) {
      // upload completed
    }
  }
}

xhr.open('PUT', 'linktoupload', true)
xhr.setRequestHeader('Content-Type', 'application/octet-stream')
xhr.send(file)
const fileInput=document.getElementById('file-input'))
const file=fileInput.files[0]
const xhr=new XMLHttpRequest()
xhr.onerror=(e)=>{
控制台日志(e)
}
xhr.upload.addEventListener('progress',(e)=>{
//处理有关上载进度的通知:e.loaded/e.total
常数{loaded,total}=e
console.log(`${loaded}/${total}`)
},错)
xhr.onreadystatechange=()=>{
if(xhr.readyState==XMLHttpRequest.DONE){

如果(xhr.status>=200&&xhr.status如果我必须将一个文件和重定向url传递给rest方法,这会是什么样子?您通过
从浏览器获得的文件,重定向可以从响应或其他内容将其放入
xhr.onreadystatechange