为什么我不能从本地环境发布表单信息?

时间:2016-05-12 15:14:57

标签: jquery ajax node.js post xss

我试图理解为什么下面的代码在我的服务器上工作,而不是在我的localhost上通过浏览器同步(我正在使用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 /

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

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

1 个答案:

答案 0 :(得分:1)

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

我通常在页面中注入当前的根目录,即

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

然后在我的javascript中,我附加了正确的网址,即

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