PHP AJAX代理未返回POST请求的正文
我将此AJAX代理用于跨域AJAX请求:。当我使用GET时,效果非常好。但当我尝试使用POST时,主体似乎丢失了,并且从未打印出来。我试着打印日志并研究了代码,但我不知道出了什么问题。PHP AJAX代理未返回POST请求的正文,php,ajax,http,post,proxy,Php,Ajax,Http,Post,Proxy,我将此AJAX代理用于跨域AJAX请求:。当我使用GET时,效果非常好。但当我尝试使用POST时,主体似乎丢失了,并且从未打印出来。我试着打印日志并研究了代码,但我不知道出了什么问题。 谢谢, 艾萨克·沃勒 编辑:以下是我正在使用的代码: $.post("proxy.php?proxy_url=http://www.google.com", { postvar1: "hello", postvar2: "goodbye" }, function(data){ alert(data);
谢谢,
艾萨克·沃勒 编辑:以下是我正在使用的代码:
$.post("proxy.php?proxy_url=http://www.google.com", { postvar1: "hello", postvar2: "goodbye" },
function(data){
alert(data);
},"text");
即使我制作了一个简单的表单并对其进行了测试,也没有输出结果。请在失败的页面上发布html/javascript 您引用的脚本需要查询字符串$\u GET中的参数,还可以选择post中的参数,它只传递这些参数 除非您修改了该脚本,否则它将无法工作,除非您在查询字符串中有信息 但是,您可以在同一请求中同时使用get和post e、 g 请注意,使用的url包括查询字符串参数,并使用带有参数的post 或者在jQuery中:
$.post("proxy.php?proxy_url=http://www.google.com", { postvar1: "hello", postvar2: "goodbye" },
function(data){
alert(data);
},"text");
或在原型中:
var http = new Ajax.Request("proxy.php?proxy_url=http://google.com",
{ method: "post",
parameters: { postvar1:"hello", postvar2: "goodybe"},
onSuccess: function(text) { alert(text);}
});
不要相信我的话,但你不能跨域Ajax。有如中所述的变通方法,但纯ajax是不可能的。尝试以下方法:
$.post("/proxy.php", {proxy_url: "http://www.google.com", postvar1: "hello", postvar2: "goodbye" },
function(data){
alert(data);
},"text");
当我尝试您的原始版本时,它返回了一个错误405,但上面的方法有效。JQUERY或proxy.php都不喜欢混合post和get参数
编辑:
我确实找回了一个页面,我可以在警报框中显示它,但它看起来与我预期的完全不同。我在一些带有发布的联系人表单的站点上尝试了相同的代码,结果正如预期的一样。proxy.php脚本可能有问题,因此它只在使用GET时返回一些内容。也许您从php脚本中的$\u get而不是$\u request获取请求数据?或者谷歌就是不回答POST请求。在这种情况下,您可能需要将帖子翻译为GET 离题:如果您只想代理几个受信任的域,请小心不要成为web上所有内容的代理。更改此行
$proxy_url = isset($_GET['proxy_url'])?$_GET['proxy_url']:false;
对此
$proxy_url = isset($_GET['proxy_url']) ? $_GET['proxy_url'] : (isset($_POST['proxy_url']) ? $_POST['proxy_url'] : false);
这将解决服务器端问题
但是,当您通过jQuery发出请求时,需要选择GET或POST。目前,除了过帐参数之外,您还通过查询字符串传递代理URL来使用这两者的组合。这将失败,但很容易修复
$.post("/proxy.php", {proxy_url: "http://www.google.com", foo: "bar" }, function(dat) {
alert(dat);
});
用$\请求替换PHP文件中的所有$\ GET变量 标题是什么?“那边有白人吗?@Itay Moav:我不明白你的问题-请你重新措辞好吗?我知道,我在使用代理,这就是问题所在。
$.post("/proxy.php", {proxy_url: "http://www.google.com", foo: "bar" }, function(dat) {
alert(dat);
});