如何存储将请求发布到远程 URL 的表单中的数据

Posted

技术标签:

【中文标题】如何存储将请求发布到远程 URL 的表单中的数据【英文标题】:How to store data from a form that POST a request to a remote URL 【发布时间】:2010-11-27 10:54:40 【问题描述】:

我正在使用 javascript 创建一个帖子表单。

<script type="text/javascript">

function post_to_url(path, method) 
    method = method || "post"; // Set method to post by default, if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);
    form.setAttribute("id", "test");

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

    form.appendChild(hiddenField);

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


post_to_url("http://www.bilpriser.se/wp-content/plugins/bilpriser_value/ajax.php/get_brand", "POST");

</script>

表单返回一个json文件,如何将文件保存到javascript中的var? 谢谢帮忙

最好的问候/约翰尼

【问题讨论】:

【参考方案1】:

您的解决方案需要重新加载页面,因为 form.submit() 会这样做。从您的“将文件保存到 var”来看,我想这不是您想要的。

要发布帖子并保持在同一页面上,您需要执行 AJAX(例如,请参阅jQuery.ajax,这会更容易。但是,您将被绑定到同源安全策略。如果您可以使用一个 GET 而不是一个 POST,你可以使用JSONP。这里还有 jQuery api 可以帮助你。

另一种解决方案是从隐藏的iframe 发布表单,但这仍然无法解决同源问题。

【讨论】:

嗨,我已经用 .ajax 和 .post 对 jQuery 进行了测试,但无法让它工作:( 这是因为您从中加载测试页面的域名(例如您的本地硬盘驱动器)与您要发布到的域不同吗? 是的,它是不同的域,该域不属于我 @Johnny Ha:那么出于安全原因它不起作用。但是,您可以通过服务器上的脚本适当地重定向数据。 那么您将遇到相同的域安全策略。然后,您进行跨域数据传输的选项是 JSONP,或者正如您所说的,从您的服务器代理源。

以上是关于如何存储将请求发布到远程 URL 的表单中的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将表单数据和此 URL 保存到数据库中.. 我可以将文件上传到 cloudinary

如何将 requestdispatcher 转发到远程 URL

如何动态地将 id 传递给 Bootstrap 验证器规则的 url:远程用于相同的表单输入字段?

如何将表单数据发送到同一网页中的 iframe src

Python Http 请求

如何将输入的数据存储到远程数据库?