2017-08-29 195 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