2010-08-05 101 views
0

我正在研究一个基本的HTML页面,该页面要求用户将细节发送到位于第三方网站上的脚本。我需要的是让用户填写我的网页上的表格,并将这些信息提交给另一个第三方表格。将表单提交到其他网站上的表单脚本的最佳方式是什么?

除了提交是否成功之外,我不希望向用户返回任何内容。我也不希望用户必须去这个第三方网站使用他们的表格提交。

网站本身建议使用iframe并将其表单保存在您的页面上,但我想知道还有哪些方法可用,最好是更好的方法。如果有某种形式的jQuery/js代码可以用来做这样的事情,那会很好。

回答

2

这会是很好,如果有jQuery的/ js代码某种形式 我可以用做 这样的事情。

一种方法是使用jQuery的$.ajax or $.post方法是这样的:

$.ajax({ 
    url: url, 
    success: function(data) { 
    alert('succeeded'); 
    } 
}); 
+0

令人惊讶的是,在当今时代,只有将其引导到另一个脚本并使其自动工作并不容易。无论哪种方式,这个代码似乎是做最需要的“最佳”方式,因此得到了我的批准。 – 2010-08-11 10:03:58

0

也许你可以用CURLOPT_POST和CURLOPT_POSTFIELDS试试cURL?

-1

你要这样呢?提交到其他网站很简单。但是,我无法检查它是否成功提交。

<form action="http://www.another.com"> 
<input name="myInput" type="text"> 
<input type="submit" value="Submit"> 
</form> 
0

以及它取决于您是否可以控制其他网站。就像你能够访问代码一样。

如果您可以使用JSONP来传递值并获得响应,但要做到这一点,您必须分配一个回调,该回调在JSON对象的前端被发送并格式化,以供其工作(它们为了安全起见这么做)。

另一种选择是使用php ob_start()函数。 (注:这只会工作,如果你试图提交这些值的形式,让$ _GET被用来proccess形式)

 ob_start(); 
     include('http://wwww.anotherwebsite.com?key1=value1&key2=value2&key3=value3'); 
     $returnString = ob_get_contents(); 
     ob_end_clean(); 

因此,然后从这里$ returnString是结果,你基本上可以在php中搜索(strpos()来查看是否真正是我会这样做的)来查找关键词,看看它是否成功或者你需要检查什么。

但是,只有当远程服务器上的表单使用$ _GET而不是$ _POST(或允许通过全局变量)时,这才起作用。

我知道这是一个php的解决方案,但一个警告是,为安全起见,有什么JavaScript可以做跨服务器的严重限制..做跨服务器的最佳的JavaScript方式是JSONP,jQuery支持这么做你可能想看看..但正如我所提到的,为了它的工作,你需要有一个回调能够被发送回响应,并且响应需要是一个jsonp对象格式..(基本上你或者需要1.让另一台服务器有一个jsonp API供您使用,或者您可以控制其他服务器的服务器端文件以进行所需的更改)。