使用 jQuery 和 AJAX 的跨域 PHP 调用
Posted
技术标签:
【中文标题】使用 jQuery 和 AJAX 的跨域 PHP 调用【英文标题】:Cross-domain PHP calls using jQuery and AJAX 【发布时间】:2011-03-05 23:14:04 【问题描述】:我有一个问题,我使用的服务器未配置为允许 php 或 CGI,我需要使用从该服务器上的表单接收到的变量向所有者发送邮件,例如一般查询/反馈表单。
有谁知道我如何在另一个配置为使用 PHP 的域上调用一个简单的 PHP 文件,然后在该服务器上执行 mail()
函数,并将变量从我的非 PHP/CGI 服务器传递给它?
如何在源服务器未启用 PHP/CGI 的情况下启用跨域 AJAX 调用?
任何反馈/建议将不胜感激。
【问题讨论】:
【参考方案1】:使用 JSONP 可能以某种方式可行,但您不需要 javascript。更简单的解决方案是将发送 PHP 脚本放在远程服务器上,例如
www.serverwithphp.com/send.php
然后将反馈表直接指向该脚本:
<form action="http://www.serverwithphp.com/send.php" ....>
并让send.php
在发送后将标头重定向回原始站点:
header("Location: http://www.serverwithoutphp.com/thanks.htm");
die();
【讨论】:
谢谢,我从来没有这样想过。我明天早上第一件事就试试。【参考方案2】:在支持它的应用程序上,您可以使用JSONP
【讨论】:
以上是关于使用 jQuery 和 AJAX 的跨域 PHP 调用的主要内容,如果未能解决你的问题,请参考以下文章
Jquery:使用 laravel 的跨域 ajax 'POST'
如何避免 jquery ajax 中使用 wcf 服务的跨域策略?
JQuery - $.ajax() - 使用 JSONP 的跨域 - 仅在 IE 8 中获取“解析器错误”(在 IE 7 中工作)