我有一個用Angular 4編寫的應用程序調用本地主機但不同端口上的couchdb。角4呼叫couchdb有CORS錯誤,但沒有預檢顯示在提琴手
我一直在使用couchdb與Aurelia應用程序沒有任何問題。
現在我正在切換到Angular 4和Angular MD,我似乎可以通過這個cors問題。
這裏是調用的CouchDB
私人commonUpdate代碼(含量:任何,網址:串,方法:串= '把'){
console.log("in common") const myHeaders = new Headers(); myHeaders.append('Content-Type', 'application/json'); const options = new RequestOptions({ headers: myHeaders, withCredentials: true }); if (content && content._rev && content._rev.length >= 5) { url = url + '/' + content._id; } const status = new DbStatus(); status.ok = false; let response: any; try { if (content) { const contentJson: string = JSON.stringify(content); this.http.post(url, contentJson, options).map(res => res.json()).subscribe(data => { console.log(data['results']); }) } status.ok = this.isHttpStatusSuccess(response.status); if (status.doc) { if (Array.isArray(status.doc.docs)) { if (status.doc.docs.length === 0) { status.ok = false; status.reason = 'Empty Array'; if (!status.error) status.error = status.reason; } } } status.httpStatus = response.status; status.response = response; } catch (error) { status.ok = false; }
錯誤消息:
VM27427:1 XMLHttpRequest無法加載localhost:5984/_session。協議方案僅支持跨源請求:http,data,chrome,chrome-extension,https。
[cors]
origins = *
credentials = true
headers = accept, authorization, content-type, origin, referer
Couch-Rev, Set-Cookie
methods = GET, PUT, POST, HEAD, DELETE
我不明白爲什麼這個工作。 再次fiddler不顯示預檢OPTION方法請求。
但是,從郵遞員運行OPTION方法返回允許GET和HEAD的方法。也許瀏覽器緩存它,但我的開發工具打開緩存禁用設置選中。
建議