2017-08-16 209 views
0

我想念什麼?ajax無法正常工作

1.PHP:

<button id = "testtext">Show</button> 
<script src="jquery-3.1.1.min.js"></script> 
<script src="js.js"></script> 

js.js:

$("#testtext").bind("click", previewNewShortnameFunc); 
function previewNewShortnameFunc() { 
    var lalalatext = "lalala"; 
    var lalalaint = 100; 
    console.log("sent: " + lalalatext + " and " + lalalaint); 
    $.ajax ({ 
     url: "testprint4.php", 
     type: "POST", 
     data : {str: lalalatext, int: lalalaint}, 
     success: function(data) { 
      window.open("testprint4.php"); 
     } 
    }); 
} 

testprint4.php

<?php 
$str = $_POST['str']; 
$int = $_POST['int']; 
echo $str; 
echo $int; 
?> 

我看到空白頁,而不是lalala100。我究竟做錯了什麼?

+0

當您將腳本重定向到提交頁面時,您爲什麼要使用ajax? –

+0

你只需要通過郵件發送一些信息在ajax中(這個工作做得很好,但你不會顯示它),然後當你完成後,你要求打開一個窗口,但你不會發送任何信息 – MacBooc

+0

你檢查控制檯瀏覽器嗎? – Alexan

回答

0

該代碼包含兩個單獨的HTTP請求。您首先在重定向用戶請求相同腳本(不帶任何參數)之前獲取該響應的Ajax請求,從而導致出現空白頁面。

$.ajax ({ 
    url: "testprint4.php", 
    type: "POST", 
    data : {str: lalalatext, int: lalalaint}, 
    success: function(data) { 

    } 
}); 

這部分使瀏覽器以提供的數據作爲POST請求腳本。 當收到回覆時,它可以在data回調鏈接success-屬性。該請求已完成。

而不是與你預期的內容響應處理的使用

window.open("testprint4.php"); 

打開瀏覽器的新窗口再次請求同一個腳本,使用GET請求W/O任何參數這段時間。因此你會看到一個空白頁面。

+0

Ohhhh ...非常感謝你! – nhpmi

0

這不行。 jQuery Ajax異步執行此調用,因此,window.open將請求testprint4.php,而不會在ajax調用中傳遞數據。要查看所需結果,請將window.open('testprin4.php')更換爲console.log(data)