2011-07-04 33 views
0

由于同源策略,Ajax无法进行跨域发布。但是,如果我们使用Ajax来动态创建虚拟表单并执行跨域发布,那么浏览器将允许它。虚拟表单vs Ajax POST

他们是不是在做同样的事情?为什么浏览器允许一个而不是另一个?

回答

0

Ajax可以 - 它被称为JSONP(Padded JSON)。 jQuery有这个内置到它的ajax对象

$.ajax({ 
url:'http://www.otherdomain.com', 
crossDomain:true, 
... 
}); 
+0

为了使用jsonp,跨域邮件的目标服务器需要支持它。我指的是我无法控制目标服务器的情况。例如,为了与PayPal交易,我即时创建虚拟表单并发布数据。另一种方法是做一个服务器中继(浏览器 - >我自己的服务器 - > paypal服务器)。我只是好奇为什么使用虚拟表单发布作品,但不是在这种情况下ajax发布。 – glendon