我正在尝试访问此地址: http://52.208.91.209:3000/?paging=1
手动访问可以正常工作。 通过Angular 4请求访问返回:
否'访问控制 - 允许 - 来源'标头出现在请求的资源上。起源' http://localhost:4200'因此不允许访问。
我用谷歌搜索了几个小时,但没有找到解决方案。
唯一的解决方案"我发现正在使用 Allow-Control-Allow-Origin 插件。
我尝试访问的地址不是我的。
我只是想尝试使用它。
在使用带角度CLI的ng服务时,我甚至读过关于代理但没有完全理解的内容。
我看到的所有解决方案都只是服务器端上的响应标头问题。但是,这不是我的服务器所以我无法配置它。
任何帮助将不胜感激。谢谢。
答案 0 :(得分:3)
您可以更改前端JavaScript代码,而不是通过公共代理发出请求。
要尝试这样做,请更改您的代码以使用以下网址:
https://cors-anywhere.herokuapp.com/http://52.208.91.209:3000/?paging=1
这会导致请求转到https://cors-anywhere.herokuapp.com
,这是一个开放的CORS代理,可以将请求发送到您想要的http://52.208.91.209:3000/?paging=1
网址。
该代理获取响应,接受并向其添加Access-Control-Allow-Origin
响应头,然后最终将其作为响应传递回您的请求前端代码。
因此,最终因为浏览器看到带有Access-Control-Allow-Origin
响应标头的响应,浏览器允许您的前端JavaScript代码访问响应。
或者使用https://github.com/Rob--W/cors-anywhere/之类的代码来设置您自己的代理。
在这种情况下您需要代理,因为http://52.208.91.209:3000/?paging=1
本身不会发送Access-Control-Allow-Origin
响应标头 - 在这种情况下,您的浏览器将不允许您的前端JavaScript代码访问该服务器的响应跨来源。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS有更多详情。
答案 1 :(得分:0)
您无法以您希望的方式从浏览器访问该API。有一些安全措施可以防止这种情况发生。如果您不控制数据源,则无法执行任何操作来解决此问题。您唯一的选择是让您自己的服务器请求数据,然后通过您的服务器获取数据。
编辑:如果您只计划在本地运行它,您实际上可以执行此操作。 Chrome有标记可忽略此安全措施。如果您不打算在除您自己以外的任何机器上使用它,您可以强制执行Chrome以在本地允许此操作。
答案 2 :(得分:0)
我发现的解决方案是使用
与正确的主机构建我的项目Traceback (most recent call last):
File "test_run.py", line 27, in <module>
volume = np.asarray(getVoxelFromMat(file_path, 64),dtype=np.bool)
File "test_run.py", line 13, in getVoxelFromMat
voxels = nd.zoom(voxels, (2,2,2), mode='constant', order=0)
File "/home/vkv/anaconda3/lib/python3.6/site-packages/scipy/ndimage/interpolation.py", line 584, in zoom
raise RuntimeError('input and output rank must be > 0')
RuntimeError: input and output rank must be > 0