没有“Access-Control-Allow-Origin”

我面临这个问题:

XMLHttpRequest无法加载http:// localhost:8000 / scripts / advaced_donwload / advancedUpload / vueupload / store.php 。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:8080 '因此不被允许访问。

这是我的代码:

storeMeta(file) { var fileObject = this.generateFileObject(file) return new Promise((resolve, reject) => { this.$http.post('http://localhost:8888/vueupload/store.php', { name: file.name }).then((response) => { fileObject.id = response.body.data.id resolve(fileObject) }, () => { reject(fileObject) }) }) } 

你的PHP服务器必须允许http://localhost:8080POST资源。 这是在服务器configuration中完成的。

  1. 您可以完全禁用服务器上的CORS,使所有来源与您的服务器通信。
  2. 或者你可以添加这个头的服务器:

    Access-Control-Allow-Origin: http://localhost:8080

  3. 或者只是允许一切

    Access-Control-Allow-Origin: *

要在PHP服务器上完成,可能是这样简单的:

  <?php header("Access-Control-Allow-Origin: *"); 

如果您使用的是诸如laravel之类的框架,请在CORS部分查看他们的文档