我试图理解为什么下面的代码在我的服务器上工作,而不是在我的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运行时,我得到了同样的错误。
有谁知道为什么我不能从我的本地环境发布我的表单信息?
答案 0 :(得分:1)
两台计算机之间的ajax调用的URL将有所不同。您需要使用相对URL,或者编写一些有助于javascript计算正确URL的机制(基于CURRENT根目录,可以在两台计算机之间进行更改)。
我通常在页面中注入当前的根目录,即
window.siteInfo = {root: "/somepath/again/"}
然后在我的javascript中,我附加了正确的网址,即
window.location = window.siteInfo.root + "someOtherpage.html"