我使用jquerys ajax函数调用PHP脚本,它返回一个数字,表示脚本是否失败或成功。问题是,在IE11中,如果我尝试使用responsetext来检查返回码,它总是返回一个空字符串,脚本失败或成功。如果我使用IE的Dev-Tools,请求的响应文本正确显示,只有当我尝试检查代码中的数字时它是空白的。 Chrome& FF正常工作。
这是我的代码:
$.ajaxSetup({
'beforeSend' : function(xhr)
{
xhr.overrideMimeType('text/html; charset=utf8');
},
});
$.ajax({
url:"phpscripts/saveErgebnisse.php",
type:"POST",
datatype:"html",
cache:false,
data:{
spielid:spielid,
manschaft1:manschaft1,
manschaft2:manschaft2,
random:Math.random()
},
complete:function(xhr,status)
{
if(xhr.status==200){
if(xhr.responseText==1){<-----Is blank
$(event.target.parentNode).effect("highlight",{"color":"#33cc33"},300);
}
else
{
$(event.target.parentNode).effect("highlight",{"color":"#cc3333"},300);
}
}
},
});
被叫脚本:
<?php
session_start();
require_once "../includes/functions.php";
require_once "../includes/classes.php";
header('charset=utf8');
$userid=$_SESSION["userid"];
$manschaft1=!empty($_POST['manschaft1'])?$_POST['manschaft1']:0;
$manschaft2=!empty($_POST['manschaft2'])?$_POST['manschaft2']:0;
$spielid=!empty($_POST['spielid'])?$_POST['spielid']:die(0);
$manschaft1=is_numeric($manschaft1)?$manschaft1:die(0);
$manschaft2=is_numeric($manschaft2)?$manschaft2:die(0);
$spielid=is_numeric($spielid)?$spielid:die(0);
$db= new DatenbankConnection;
//check nach ablaufdatum
$anpfiff=$db->query("Select anpfiff from spiele_tippspiel where spielid=$spielid");
$anpfiff=mysqli_fetch_assoc($anpfiff);
$anpfiff=$anpfiff["anpfiff"];
if(time()-strtotime($anpfiff)>0){
die(0);
}
if($db->query(
'Insert INTO tipps_tippspiel
SET manschaft1='.$manschaft1.',
manschaft2='.$manschaft2.',
userid='.$userid.',
spielid='.$spielid.'
ON DUPLICATE KEY UPDATE
manschaft1='.$manschaft1.',
manschaft2='.$manschaft2.',
userid='.$userid.',
spielid='.$spielid.'
')==1){
echo 1;
}else{
echo 0;
}
thx for help