Javascript 否';访问控制允许原点';角度4应用程序

Javascript 否';访问控制允许原点';角度4应用程序,javascript,angular,xmlhttprequest,cors,Javascript,Angular,Xmlhttprequest,Cors,我正在尝试访问此地址: 手动访问工作正常。 通过Angular 4请求访问返回: 请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许对源“”进行访问。 我在谷歌上搜索了几个小时,没有找到解决办法 我找到的唯一“解决方案”是使用允许控制允许源代码插件 我试图访问的地址不是我的 我只是想和它一起工作 我甚至读过关于在angular CLI中使用ng serve时代理的内容,但我没有完全理解 我看到的所有解决方案都只是服务器端的响应头问题。但是,这不是我的

我正在尝试访问此地址:

手动访问工作正常。 通过Angular 4请求访问返回:

请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许对源“”进行访问。

我在谷歌上搜索了几个小时,没有找到解决办法

我找到的唯一“解决方案”是使用允许控制允许源代码插件

我试图访问的地址不是我的

我只是想和它一起工作

我甚至读过关于在angular CLI中使用ng serve时代理的内容,但我没有完全理解

我看到的所有解决方案都只是服务器端的响应头问题。但是,这不是我的服务器,因此我无法配置它


任何帮助都将不胜感激。谢谢。

您无法通过浏览器以想要的方式访问该API。有安全措施来防止这种情况发生。如果不控制数据源,则无法进行任何修复。您唯一的选择是让自己的服务器请求数据,然后通过服务器获取数据


编辑:如果您只计划在本地运行它,实际上可以这样做。Chrome具有忽略此安全措施的标志。如果您不打算在您自己的机器以外的任何机器上使用此API,您可以强制chrome在本地允许此操作。

您无法通过浏览器以您想要的方式访问该API。有安全措施来防止这种情况发生。如果不控制数据源,则无法进行任何修复。您唯一的选择是让自己的服务器请求数据,然后通过服务器获取数据


编辑:如果您只计划在本地运行它,实际上可以这样做。Chrome具有忽略此安全措施的标志。如果您不打算在您自己的机器以外的任何机器上使用此功能,您可以强制chrome在本地允许此功能。

您可以更改前端JavaScript代码,改为通过公共代理发出请求

要尝试此操作,请将代码更改为使用以下URL:

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
您想要的URL

该代理获取响应,获取该响应并向其添加
访问控制允许源
响应头,然后最终将其作为响应传递回请求的前端代码

因此,最后,由于浏览器看到带有
Access Control Allow Origin
response头的响应,因此浏览器允许前端JavaScript代码访问响应

或者使用来自或类似的代码来设置您自己的代理

在这种情况下,您需要一个代理,因为
http://52.208.91.209:3000/?paging=1
本身不会发送
访问控制允许来源
响应标题,在这种情况下,浏览器将不允许前端JavaScript代码跨来源访问来自该服务器的响应


有更多详细信息。

您可以更改前端JavaScript代码,改为通过公共代理发出请求

要尝试此操作,请将代码更改为使用以下URL:

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
您想要的URL

该代理获取响应,获取该响应并向其添加
访问控制允许源
响应头,然后最终将其作为响应传递回请求的前端代码

因此,最后,由于浏览器看到带有
Access Control Allow Origin
response头的响应,因此浏览器允许前端JavaScript代码访问响应

或者使用来自或类似的代码来设置您自己的代理

在这种情况下,您需要一个代理,因为
http://52.208.91.209:3000/?paging=1
本身不会发送
访问控制允许来源
响应标题,在这种情况下,浏览器将不允许前端JavaScript代码跨来源访问来自该服务器的响应


有更多详细信息。

我找到的解决方案是使用

ng build --production -host=myDomain.com

我找到的解决方案是使用

ng build --production -host=myDomain.com

显然,服务器不希望人们如此简单地为自己的站点“借用”资源-你当然可以通过服务器“代理”请求-这取决于你的服务器端设置,你根本没有描述过。服务器不希望人们如此简单地为自己的站点“借用”资源-你当然可以“代理”通过您的服务器发送请求-如何执行此操作取决于您的服务器端设置,您根本没有描述