2016-06-11 76 views
1

這是我的全code ...否「訪問控制允許來源」標頭在辦理Ionic2 HTTP POST請求

this.http.post(link, data, { headers: headers }) 
    .map(res => res.json()) 
    .subscribe(data => { 
     this.data.response = data._body; 
    }, error => { 
     console.log("Oooops!"); 
    }); 

運行代碼後,這個錯誤存在:

"XMLHttpRequest cannot load 
https://script.google.com/macros/s/AKfycbzdHHKBmLWJYZtFGlJGOrUwlPIWXor1geEOgcSgvhs/dev.  
No 'Access-Control-Allow-Origin' header is present on the requested resource. 
Origin 'http://localhost:8100' is therefore not allowed access. 
The response had HTTP status code 401." 

我搜索關於CORS ...但我不能讓我的頭周圍...

任何幫助將不勝感激。

+0

Duplicate:http://stackoverflow.com/questions/30132885/ionic-app-cannot-connect-cors-enabled-server-with-http – Quentin

+1

相關:http://stackoverflow.com/questions/35553500/xmlhttprequest -cannot-load-https-www-website-com/ – Quentin

+0

你正在發送你的POST請求的鏈接沒有來自服務器的訪問權限來訪問它請求的任何信息......它是客戶端到位的安全機制服務器通信 – repzero

回答

-3

從谷歌瀏覽器下載Allow-Control-Allow-Origin應用程序。在安裝的應用程序中啓用CORS並執行您的代碼。這將暫時允許您的瀏覽器中的CORS。

+0

這對於單個用戶來說只是一個短期的修復程序 – Mike

+0

它在瀏覽器中工作... firefox和blisk ...但它不適用於Ionic2開發環境... –

2

我有同樣的問題,但幾個小時後,搜索我的問題消失了。在ionic.config.json>/mobilepath - /mobile/api/authentication

ionic.config.json

{ 
    "name": "KickStarter", 
    "app_id": "85ff0666", 
    "v2": true, 
    "typescript": true, 
    "proxies": [ 
    { 
     "path": "/mobile", 
     "proxyUrl": "http://xxxxx:port/mobile" 
    } 
    ] 
} 

你應該使用ionic g provider [name-of-provider] --ts它會產生供應商提出請求如下:

export class AuthProvider { 
    data: any = null; 

    constructor(public http: Http) { } 

    load() { 
     if (this.data) { 
      // already loaded data 
      return Promise.resolve(this.data); 
     } 

     // don't have the data yet 
     return new Promise(resolve => { 
      // We're using Angular Http provider to request the data, 
      // then on the response it'll map the JSON data to a parsed JS object. 
      // Next we process the data and resolve the promise wi new data. 
      this.http.get('/mobile/api/authentication') 
       .map(res => res.json()) 
       .subscribe(data => { 
        // we've got back the raw data, now generate the core schedule data 
        // and save the data for later reference 
        resolve(this.data); 
       }); 
     }); 
    } 
} 

只記得。

+0

謝謝,它對離子2.0.1 – fifth

+0

@ vuhung3990我很努力使您的解決方案完全理解,因爲使用GlobalEnv,AuthBody,Headers,Languages等語言並不能爲您提供使用哪些軟件包的線索。你能開導我嗎?也許還包括一些進口產品。乾杯。 – JGFMK

+0

@JGFMK嗨,你不需要知道GlobalEnv,AuthBody,Headers是什麼意思,這是我的自定義組件,我只是更新我的答案 – vuhung3990

相關問題