簡體   English   中英

如何允許訪問其他端口?

[英]How to permit access to a different port?

Amber Smalltalk IDE可與用nodejs編寫的服務器一起使用。 如何配置允許XMLHttpRequests進入同一域的不同端口的服務器?

琥珀色的默認訪問權限是

http://127.0.0.1:4000/

並要檢索和存儲JSON數據,我想使用ouchDB實例(默認端口為5984)

 | req | req := XMLHttpRequest new. req open: 'GET' url: 'http://127.0.0.1:5984/' asynchronous: false. req send: ''. 

問題

由於跨域訪問策略,因此無法訪問。

筆記

服務器從

amber-master\bin\server.bat

服務器在

amber-master\cli\js\amber-cli.js

客戶端是Firefox,它應該允許XMLHttpRequest對象可以訪問其他端口,前提是服務器使用“ Access-Control-Allow-Origin標頭”進行指示。

參考

http://www.w3.org/TR/cors/#access-control-allow-origin-response-header

來自XMLHttpRequest的CouchDB跨域訪問?

在MKroenert回答之后

我升級到1.4.0版的CouchDB,並修改了local.ini文件以允許CORS(C:\\ Program Files \\ Apache Software Foundation \\ CouchDB \\ etc \\ couchdb \\ local.ini)

[httpd]
enable_cors = true

[cors]
origins = *

有關http://wiki.apache.org/couchdb/CORS的更多信息,特別是如何限制訪問。

3.12.1。 啟用CORS http://docs.couchdb.org/en/latest/configuring.html

然后,在重新啟動CouchDB服務之后,以下代碼段在Amber Smalltalk工作區中可以正常工作

| req colordict mimeType |
colordict := HashedCollection new.

colordict at: 'red' put: 'rot'.
colordict at: 'blue' put: 'blau'.
colordict at: 'yellow' put: 'gelb'.

req := XMLHttpRequest new.
req open: 'PUT' 
    url: 'http://localhost:5984/components/test2' asynchronous: false.

mimeType :='application/json'.

req setRequestHeader:  'Content-Type'  mimeType: mimeType. 
req send: (JSON stringify: colordict).
req responseText  

“ printit”回饋

'{"ok":true,"id":"test2","rev":"1-8d2356ebdbabdd87a35e0ae3b137bdb5"}
' 

如果我正確理解了您的問題,則嘗試從Amber程序中訪問127.0.0.1:5984上的資源。

由於問題中未提及,因此該問題有兩種可能的情況:

  1. 非琥珀色服務器正在端口5984上運行。

    在這種情況下,端口5984上運行的特定服務器有責任提供Access-Control-Allow-Origin: *標頭,而Amber服務器則不成問題。

  2. 另一台Amber服務器正在端口5984上運行。

    在這種情況下,我們當前不實現發送Access-Control-Allow-Origin: *標頭。 Amber服務器是作為簡單的開發服務器,不應用於部署。

但是,如果有特定的用例需要發送此標頭,我們可以在Amber郵件列表上進行討論,或在GitHub跟蹤器上創建問題,並將其標記為功能請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM