我想念的是什么?
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 :(得分: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请求没有任何参数。因此,您将看到一个空白页面。
答案 1 :(得分:0)
这不起作用。 jQuery Ajax以异步方式进行此调用,因此,window.open将请求testprint4.php而不在ajax调用中传递数据。要查看所需的结果,请将window.open('testprin4.php')
替换为console.log(data)
。