我的主頁上有一個簡單的表單,表示POST是隨機生成的URL的輸入(由$random
創建),然後在新選項卡中打開它。這種隨機URL運行腳本run.php
無法使用PHP訪問AJAX數據
<form action="/run.php" method="POST" target="_blank">
<input type="hidden" id="idgen" name="idgen" value="<?php echo $random ?>">
<input type="text" name="userinput" id="userinput">
<button type="submit" onclick="calcResult();">Go!</button>
</form>
我也有使用該userinput數據計算結果的網頁JavaScript函數。這個結果是(應該是)POST'發送到表單發送到的相同的隨機生成的網址。
function calcResult() {
var userinput = document.getElementById('userinput').value;
var randomid = document.getElementById('idgen').value;
// various functions
$.ajax({
type: "POST",
url: 'http://example.com/' + randomid, // same random url
data: {result: "Hello"}
});
我再加入<?php echo $_POST['result']; ?>
到run.php
文件
如果我打開Chrome開發工具的「網絡」選項卡(XHR
)並提交表單(窗體打開運行run.php
隨機URL) ,那麼這個AJAX POST does似乎工作(它發送到與表單相同的隨機鏈接。該隨機url的'響應'選項卡顯示run.php
源代碼,甚至用AJAX結果"Hello"
替換<?php echo $_POST['result']; ?>
。
因此,它在開發人員工具中成功工作,但它在實際的隨機url網頁("Hello"
沒有顯示在實際網頁中,不像在開發人員工具中)不工作。
我現在完全失去了什麼可能阻止我訪問網頁中的AJAX結果。
'
當你提交一個表單時,瀏覽器打開'action'屬性指定的頁面 - 在這種情況發生之前post請求不會完成 - 事實上,它可能永遠不會啓動 –
@ tyteen4a03表單將數據發送到'run。然後(使用htaccess規則和PHP代碼)發送到一個隨機的url example.com/run.php ---> example.com/abcxyz(即運行run.php腳本)'AJAX調用我試圖訪問與表單數據相同的隨機網址上的AJAX數據 – Pebble