gpt4 book ai didi

node.js - 如何允许访问不同的端口?

转载 作者:搜寻专家 更新时间:2023-11-01 00:45:44 25 4
gpt4 key购买 nike

Amber Smalltalk IDE 与用 nodejs 编写的服务器一起工作。如何配置服务器以允许 XMLHttpRequests 转到同一域的不同端口?

Amber 的默认访问权限是

http://127.0.0.1:4000/

为了检索和存储 JSON 数据,我想使用 couchDB 实例(默认端口为 5984)



|请求 |

req := XMLHttpRequest 新的。

req open: 'GET' url: 'http://127.0.0.1:5984/' 异步:false。

请求发送:''。

问题

由于跨域访问策略,无法访问。

注意事项

服务器调用自

amber-master\bin\server.bat

服务器在

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

客户端是 Firefox,它应该允许 XMLHttpRequest 对象可以访问不同的端口,前提是服务器用“Access-Control-Allow-Origin header”指示这一点。

引用资料

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

CouchDB cross-domain access from XMLHttpRequest?

MKroenert 回答后

我升级到 CouchDB 的 1.4.0 版本并修改了 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. 非 Amber 服务器正在端口 5984 上运行。

    在这种情况下,运行在端口 5984 上的特定服务器有责任提供 Access-Control-Allow-Origin: * header ,这不是问题使用 Amber 服务器。

  2. 另一个 Amber 服务器正在端口 5984 上运行。

    在这种情况下,我们目前没有实现发送 Access-Control-Allow-Origin: * header 。Amber 服务器是一个简单的开发服务器,不应该用于部署。

但是,如果有特定用例需要发送此 header ,我们可以在 Amber mailinglist 上讨论。或在 GitHub tracker 上创建问题并将其标记为功能请求。

关于node.js - 如何允许访问不同的端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18546026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com