2012-06-18 81 views
1

我正在使用支付網關的API來執行回叫請求。 當發出回叫請求時,網關希望我以「OK」響應。 沒有更多或更少。這並不意味着html提供的響應。只有這兩個字母的回調文件。請注意,這並不意味着它需要HTTP狀態代碼200/OK ...它希望實際數據(不是標題)爲單詞「OK」。PHP如何響應HTTP請求並繼續處理?

所以這是行不通的:

<html><body>OK</body></html> 

這將工作:

<?php echo "OK"; ?> 

然而,當我發回好了,我需要做服務器端的一些東西,然後重定向瀏覽器頁面轉到另一個頁面。但是,當我嘗試做:

<?php 
echo "OK"; 
header('Location: http://www.store.com/success.php'); 
exit; 
?> 

網關忽略回聲「OK」,而是讀取HTML關閉我重定向到success.php頁面。

那麼我怎樣才能發回OK,但繼續在我身邊做事?

謝謝

+0

如果首先發送'Location:'標題,會發生什麼? – Crontab

+0

您在發送內容時不能更改/添加HTTP標頭。 – powtac

+0

同樣的結果。它仍然得到重定向頁面的html – Dss

回答

1

您無法發送內容,然後重定向。重定向頭設置必須單獨完成。

+0

謝謝你的回答..我曾經擔心過這個..好的..我會試着和門戶交談,問他們在這種情況下他們應該做什麼。謝謝 – Dss

0

你可以嘗試使用flush();強制php寫出OK。

+0

我從來沒有得到它的工作正常... – powtac

+0

@powtac看起來這對於flush():http://stackoverflow.com/questions/11072717/stop-looping-and-output-and-then-continue-php/11072848#11072848 – HBv6

+0

@PierpaoloBagnasco謝謝! – powtac

0

使用javascript或元刷新標記將重定向移動到客戶端可以接受嗎?

0

在發送OK之前,您可以通過命令行調用PHP以使PHP像多種操作一樣工作。