ajax无法正常工作
问题描述:
我想念什么?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。我究竟做错了什么?
答
该代码包含两个单独的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
答
这不行。 jQuery Ajax异步执行此调用,因此,window.open将请求testprint4.php,而不会在ajax调用中传递数据。要查看所需结果,请将window.open('testprin4.php')
更换为console.log(data)
。
当您将脚本重定向到提交页面时,您为什么要使用ajax? –
你只需要通过邮件发送一些信息在ajax中(这个工作做得很好,但你不会显示它),然后当你完成后,你要求打开一个窗口,但你不会发送任何信息 – MacBooc
你检查控制台浏览器吗? – Alexan