ajax不正确

时间:2017-08-16 15:36:36

标签: javascript php jquery 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。我做错了什么?

2 个答案:

答案 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)