【问题标题】:Why can't I post my form information from my local environment?为什么我不能从我的本地环境中发布我的表单信息?
【发布时间】:2016-09-08 12:46:49
【问题描述】:

我试图通过浏览器同步(我正在使用 gulp)了解为什么以下代码可以在我的服务器上运行,但不能在我的本地主机上运行:

$.ajax({
          url: 'https://www.someserver.com/Form.aspx',
          type: 'POST',
          dataType: 'html',
          data: {
            'email': email
            'key': key
          },
          success: function(data) {
            console.log(data);
          },
          error: function(error) {
            console.log(error);
          }
        });

在我的服务器上,我收到了成功响应。在我的本地环境(在 localhost:3000 上运行),我立即收到以下错误:

Cannot POST /

起初,我认为这可能是因为我的目标 url 是 https 并且我通过常规 http 服务于我的本地环境。但是,当我将浏览器同步进程切换到通过 https 运行时,我得到了同样的错误。

有人知道为什么我不能从本地环境中发布我的表单信息吗?

【问题讨论】:

    标签: jquery ajax node.js post xss


    【解决方案1】:

    两台计算机的 ajax 调用 URL 会有所不同。您需要使用相对 url,或者编写一些有助于 javascript 计算正确 URL 的机制(基于 CURRENT 根目录,可以在两台计算机之间更改)。

    我通常将当前根目录注入到页面的高处,即

    window.siteInfo = {root: "/somepath/again/"}
    

    然后在我的 javascript 中,我追加以获取正确的网址,即

    window.location = window.siteInfo.root + "someOtherpage.html"
    

    【讨论】:

    • 感谢您的回复。我明白你关于路径问题的观点,但是,我在代码中使用了绝对 URL。这不应该减轻您在回答中描述的问题吗?
    • 如果您的 HTML 是从服务器 xyz.com 提供的,那么您无法在没有配置的情况下对服务器 abc.com 进行 AJAX 调用。默认结果是ajax调用会失败。您可能不想要绝对网址,这就是为什么我的回复说您需要一个恒定的相对网址(可能是“../../page.aspx”)或计算它。
    • 其实这是一个很常见的问题。
    猜你喜欢
    • 2016-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多