【问题标题】:Make POST JSON Request From HTML Script To A Node.JS App In Another Domain从 HTML 脚本向另一个域中的 Node.JS 应用程序发出 POST JSON 请求
【发布时间】:2017-06-19 11:27:14
【问题描述】:

我正在尝试通过 .erb.html 文件中的 javascript 发出 post json 请求,将字符串数据发送到另一个域中的 node.js 应用程序,该应用程序使用 express 来处理传入请求。

我从几篇文章中了解到,仅使用 XMLHttpRequest 是不可能的。如何将这样的请求发送到这样的应用程序?

【问题讨论】:

  • 这是可能的,我只是认为您需要阅读有关CORS(跨域资源共享)的内容:en.wikipedia.org/wiki/Cross-origin_resource_sharing 服务器必须发送一些标头,以便不阻止跨域请求。
  • 查看标题:Access-Control-Allow-Origin 在响应标题中;如果是*,那么您可以向该域发送 Ajax 请求;但是如果它指向同一个域;那我怕你做不到。

标签: javascript ruby-on-rails json node.js


【解决方案1】:

要使用 XMLHttpRequest 来完成,远程服务器必须配置 CORS heaers。

From MDN:

资源在请求一个跨域 HTTP 请求时 来自不同域、协议或端口的资源。为了 例如,从http://domain-a.com 提供的 HTML 页面会生成一个 http://domain-b.com/image.jpg 的 src 请求。网络上的许多页面 今天从 单独的域。

出于安全原因,浏览器会限制跨域 HTTP 请求 从脚本中启动。例如,XMLHttpRequest 和 Fetch 遵循同源政策。所以,一个 Web 应用程序使用 XMLHttpRequest 或 Fetch 只能向自己发出 HTTP 请求 领域。为了改进 Web 应用程序,开发人员要求浏览器供应商 允许跨域请求。

【讨论】:

  • 谢谢。我将检查 CORS 以及如何使用 Node.Js 进行设置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-02
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多