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 に答える