当前位置: 首页 > 面试题库 >

起源 是Access-Control-Allow-Origin不允许的

龙永逸
2023-03-14
问题内容

XMLHttpRequest cannot load http://localhost:8080/api/test. Origin http://localhost:3000 is not allowed by Access-Control-Allow-Origin.

我阅读了有关跨域Ajax请求的信息,并了解了潜在的安全问题。就我而言,有2台服务器在本地运行,并且希望在测试期间启用跨域请求。

localhost:8080 - Google Appengine dev server
localhost:3000 - Node.js server

localhost:8080 - GAE server从节点服务器加载页面时,我向发出了一个ajax请求。什么是最简单,最安全的方法(不想使用disable-web- security选项启动chrome )。如果必须更改'Content-Type',是否应该在节点服务器上进行更改?怎么样?


问题答案:

由于它们运行在不同的端口上,因此它们是不同的JavaScript origin。它们在同一台计算机/主机名上没关系。

您需要在服务器(localhost:8080)上启用CORS。

您需要做的就是向服务器添加HTTP标头:

Access-Control-Allow-Origin: http://localhost:3000

或者,为简单起见:

Access-Control-Allow-Origin: *

如果您的服务器尝试设置Cookie,而您使用的是,请不要使用“ *” withCredentials = true

当响应凭据请求时,服务器必须指定域,并且不能使用通配符。



 类似资料:
  • 问题内容: 我正在使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地不被访问控制允许来源允许的。 我该如何解决这个问题? 问题答案: 不久前,我写了一篇有关此问题的文章Cross Domain AJAX 。 如果

  • 问题内容: 我正在Ajax.request使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地不被访问控制允许来源允许的。 我该如何解决这个问题? 问题答案: 如果您控制响应服务器,最简单的方法是为以下项添加响应标

  • null 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。Access-Control-Allow-Origin不允许Origin 。 如何解决此问题?

  • 问题内容: 我是Ajax的新手,只是受过此跨域调用的任务。我们的网页上有一个文本框,用户可用来执行公司名称搜索。通过单击文本框旁边的按钮,将请求Ajax调用。不幸的是,Web服务位于单独的域中,因此自然会引起问题。 以下是我使这项工作的最佳尝试。我还要注意,此调用的目的是以XML格式返回结果,该结果将在请求的一部分中进行解析。 这又是错误消息: 对于解决方法,我不知所措,将不胜感激任何想法。 问题

  • 问题内容: 我从我控制的远程服务器获取json时遇到问题。我有2个Web应用程序,一个提供数据并在端口3311上运行,另一个请求数据的应用程序在端口5000上运行。 使用jquery的以下工作: 当尝试使用angular相同的获取请求时 我收到错误 控制台日志显示OPTIONS请求返回HTTP200之后发生的错误 从OPTIONS请求返回的标头是 问题答案: 这可能是由于Angular包含请求标头

  • 当我的页面从节点服务器加载时,我向发出了一个ajax请求。什么是最简单、最安全的(不要使用选项启动chrome)。如果必须更改,是否应该在节点服务器上更改?怎么做?