如何存储将请求发布到远程 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