Angular2 RC5 XHR响应停止工作

时间:2016-08-18 01:01:35

标签: angular

****更新****

我认为这不起作用的原因是因为每次将新文件上传到public / temp文件夹时,BroccoliTypeScriptCompiler(我在重建应用程序时直到RC5才使用)都会重新编译应用程序。我试图通过使用位于我的src文件夹中的tsconfig.json文件上的exclude标记以及尝试在我的e2e文件夹中的一个来阻止此行为,但似乎没有人对此操作产生任何影响。

有人可以告诉我如何在将新文件添加到/ public / temp时停止BroccoliTypeScriptCompiler重新编译我的应用程序吗?

****原创****

我刚刚将我的应用程序从RC4更新到RC5。我仍然有我的RC4应用程序进行测试。此应用程序最初是在Angular2的测试阶段创建的。我刚刚完成的另一件事是在新的文件夹结构中重建应用程序,这似乎是通过角度CLI实现的。

执行此操作后,我在本地上传文件的xhr上传过程不再有效。它的字面意思与RC4版本中仍然有效的完全相同。我无法在网上找到任何可以让我理解为什么会这样。

当我在RC5中运行它时,profile-input.component中的结果为null。 upload-file.service中的xhr.response具有预期的完整对象。

任何帮助都会很棒。

个人资料-input.component.ts

upload() {
console.log('this.createdProfile before upload');
console.log(this.createdProfile);
this.uploadFileService.makeFileRequest("http://localhost:3000/upload", this.createdProfile.profileId, this.filesToUpload)
  .then(
    (result) => {
      console.log('result in prof input action removed is');
      console.log(result);
      // this.imageUploaded = true;
      // this.uploadFile = result.obj.path;
      // this.uploadObject = result.obj;
    },
    (error) => {
      console.log('We are in error');
      console.error(error);
    });
}

上传-file.service.ts

makeFileRequest(url: string, profileId, files: Array<File>) {
const token = localStorage.getItem('token') ? '?token=' + localStorage.getItem('token') : '';
console.log('profileId in upload service is: ');
console.log(profileId);
const profileParam = 'profileId=' + profileId;

return new Promise((resolve, reject) => {
  var formData: any = new FormData();
  var xhr = new XMLHttpRequest();

  for(var i = 0; i < files.length; i++) {
    formData.append("uploads[]", files[i], files[i].name);
  }
  xhr.onreadystatechange = function () {
    if (xhr.readyState == 4) {
      if (xhr.status == 200) {
        console.log('xhr.status is 200');
        console.log('xhr.response is');
        console.log(xhr.response);
        resolve(JSON.parse(xhr.response));
      } else {
        console.log('xhr.status is NOT 200');
        reject(xhr.response);
      }
    }
  };
  xhr.open("POST", url+token+'&'+profileParam, true);
  xhr.send(formData);
});

}

0 个答案:

没有答案