如何使用JavaScript将数据POST到远程服务器?

3

我有这段JavaScript代码:

var path = 'remote site action.php';
var form = document.createElement("form");
form.setAttribute("method", 'POST');
form.setAttribute("action", path);
var code = "some info";

        var hiddenField = document.createElement("input");
        hiddenField.setAttribute("type", "hidden");
        hiddenField.setAttribute("name", "data");
        hiddenField.setAttribute("value", code);

        form.appendChild(hiddenField);
        document.body.appendChild(form);

 form.submit();

很遗憾,我无法将其发布到远程服务器。虽然代码能够正常工作,但在执行时,远程页面显示访问被拒绝(您没有权限)(远程服务器/action.php)。我应该更改远程页面的权限参数吗?... 有什么建议吗?


这个脚本是否在同一域上的页面上运行? - Luis Perez
1
使用 XMLHttpRequest 或 jQuery 发送请求。 - KV Prajapati
感谢大家的回复。这两个域名是不同的,但我发现由于某种原因,一个服务器对帖子有限制,而另一个服务器可以成功执行脚本。 - Abul Hasnat
3个回答

0
如果你收到了403访问被拒绝的错误,那么问题就在于服务器不希望任何人看到该页面。如果这是你自己的服务器,请尝试更改该页面的权限设置。如果你正在提交HTML表单,跨域应该不会成为问题。

它是403错误。但托管页面是我的。我有两个托管站点。我想将数据从我的电脑传输到其中一个服务器。那个页面应该具有什么权限才能发布数据?例如777还是其他什么? - Abul Hasnat
要向那个页面发布数据,你需要确保该页面是公开的。 - Alex Fischer

0

听起来你的服务器可能已经启用了身份验证。你是否启用了基本身份验证?你可以使用POST提交到你的服务器吗,还是只能使用GET?你是否提交跨域请求?有很多可能引起这个问题的情况,所以你需要确定最有可能的原因并从那里开始解决。如果JavaScript正在发布到您的服务器,则问题不在于JS,而在于您的服务器。


-1

1. 在浏览器的地址栏中查看。此脚本的URL应以http://开头而不是C:\或file://(如果您将脚本保存为.html并通过单击运行,则始终会发生)

2. 查看脚本的域名。它应该与您的服务器/ action.php相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接