2017-08-29 150 views
1

我面对这个问题:否“访问控制允许来源”

的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) 
     }) 
    }) 
    } 

回答

1

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

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

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

  3. 或者只是让一切

    Access-Control-Allow-Origin: *

要做到这一点在PHP服务器上,它可能像这样简单:

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

如果使用的是一个框架如laravel或这样,检查它们的文档中的CORS部分

+0

报头(“内容类型:应用程序/ JSON”); header('Access-Control-Allow-Origin:http:// localhost:8080'); header('Access-Control-Allow-Headers:Origin,X-Requested-With,Content-Type,Accept'); $ id = uniqid(true); // http_response_code(500) 回波json_encode([ \t '数据'=> [ \t \t \t的 'id'=> $ ID \t \t] \t]); –

+0

这是行不通的 –

+0

尝试完全禁用'CORS',你使用哪个PHP服务器/框架? – Bamieh