我正在尝试将浏览器定向到其他页面.如果我想要一个GET请求,我可能会说
document.location.href = 'http://example.com/q=a';
Run Code Online (Sandbox Code Playgroud)
但是我试图访问的资源不会正常响应,除非我使用POST请求.如果这不是动态生成的,我可能会使用HTML
<form action="http://example.com/" method="POST">
<input type="hidden" name="q" value="a">
</form>
Run Code Online (Sandbox Code Playgroud)
然后我只需从DOM提交表单.
但实际上我想要允许我说的JavaScript代码
post_to_url('http://example.com/', {'q':'a'});
Run Code Online (Sandbox Code Playgroud)
什么是最好的跨浏览器实现?
编辑
对不起,我不清楚.我需要一个改变浏览器位置的解决方案,就像提交表单一样.如果使用XMLHttpRequest可以实现这一点,那就不明显了.这不应该是异步的,也不应该使用XML,所以Ajax不是答案.
我有一个不寻常的要求.基本上我需要一种方法,以便当用户点击链接或按钮时,他们将收到PDF.这里棘手的部分是服务器根本不处理请求,除非与它一起发送自定义标头(否则它认为该人注销并将其发送到登录屏幕).
目前标题的工作方式无法改变,所以请不要纠缠于此; 它将来会改变,是一个我无法控制的内部应用程序.
我探讨的选项:
看来我此时唯一的选择基本上是:
这里有什么我想念的吗?我希望有人可以验证我的发现或指出我错过的东西,因为据我所知,我在这里没有什么可以做的.
编辑:这似乎很容易确认我在想什么:XMLHttpRequest在浏览器中打开PDF
我正在尝试使用FPDF创建pdf文件.
我现在拥有的是一个HTML页面,其中包含各种数据行和旁边的打印按钮.当有人点击Print时,我通过调用AJAX来使用Jquery发送相应的数据.
这是我的JQUERY代码:
$('.printbtn').live('click', function(){
var printdata = 'name=' + name_t + '&address=' + address_t;
$.post('print.php', printdata, function(){
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
这是print.php
$name = $_POST['name'];
$address = $_POST['address'];
require ("fpdf17/fpdf.php");
$pdf = new FPDF('P','mm',array(90,100));
$pdf->AddPage();
$pdf->SetFont('Arial','B',12);
$pdf->Cell(0,10,'name: '.$name);
$pdf->Cell(0,10,'address: '.$address);
$pdf->Output();
?>
Run Code Online (Sandbox Code Playgroud)
但我不会得到PDF作为回报.怎么了??事实上,没有发生..我想要检索pdf文件并将其发送到打印