2017-08-16 161 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)