0

我有一些用于异步上传文件的代码-效果很好:


var form = document.getElementById('form-id');

var formData = new FormData(form);


var fileInput = document.getElementById('file');
var file = fileInput.files[0];
formData.append('our-file', file);

  var xhr = new XMLHttpRequest();   

  xhr.upload.addEventListener('loadstart', onloadstartHandler, false);
  xhr.upload.addEventListener('progress', onprogressHandler, false);
  xhr.upload.addEventListener('load', onloadHandler, false);
  xhr.addEventListener('readystatechange', onreadystatechangeHandler, false);   


  xhr.open('POST', 'http://www.server1.com/upload.php', true);  

  xhr.send(formData);

问题是如果我想发布到备用域(即:www.server2.com/upload.php)它不起作用。只有当我发布到脚本所在的同一个域时,它才有效。

4

1 回答 1

0

这是设计强加的安全限制,以防止跨站点脚本攻击。如果您可以更改服务器发送的 HTTP 标头,则可以使用代理或使用此解决方案来完成此操作。

于 2013-08-01T18:09:39.133 回答