Php jQueryAjax调用在MacSafari和Chrome浏览器上返回空错误
几天来,我一直在寻找解决方案并尝试修复,但没有任何改变 老板在Mac电脑上,我没有,所以我让他反复尝试修复,并将结果转发给我。到目前为止没有运气 因此,当前的设置是,我有一个带有用户名和密码输入的表单,它在通过验证后提交。验证是一个ajax调用,它验证用户名和密码,然后提交表单 只有在Mac Chrome和Safari(webkit)上,我从ajax调用中得到一个错误响应,该响应为空 我已经剥离了执行验证的php函数,以简单地回显“hello”,这样我就知道问题不是由php引起的 因此,单击目标元素后,我获取用户名和密码值并发送ajax请求。(这应该会击中我的php文件,并只回显hello)。但是,它返回并出错,没有消息。我的意思是,xhr responseText和thrownError都是空/空的 下面是代码:(HTML) php文件只是:echo“hello”;出口只是为了避免任何测试错误 这里有几件事,我添加了encodeURIComponent(),因为我确实看到一篇文章描述了一个带有特殊字符和空格的问题。(不起作用)关于成功:我包含状态和xhr变量只是为了调试,通常我只有数据 现在出错了:这是每次出现的内容,但是所有的响应都是空白的,或者是未定义的。我本希望得到一些像样的错误,但我什么也没有得到。现在这只出现在最近升级到Mountian Lion的Mac上,并且只出现在Webkit(Chrome/Safari)浏览器上 我试着只做XMLHttpRequest而不使用jQuery,得到了同样的结果 这在个人电脑上的IE、Firefox、Chrome和Safari中都可以使用,在Mac上的Firefox中也可以使用 最后,我相信在他升级之前,这对他是有用的Php jQueryAjax调用在MacSafari和Chrome浏览器上返回空错误,php,jquery,ajax,Php,Jquery,Ajax,几天来,我一直在寻找解决方案并尝试修复,但没有任何改变 老板在Mac电脑上,我没有,所以我让他反复尝试修复,并将结果转发给我。到目前为止没有运气 因此,当前的设置是,我有一个带有用户名和密码输入的表单,它在通过验证后提交。验证是一个ajax调用,它验证用户名和密码,然后提交表单 只有在Mac Chrome和Safari(webkit)上,我从ajax调用中得到一个错误响应,该响应为空 我已经剥离了执行验证的php函数,以简单地回显“hello”,这样我就知道问题不是由php引起的 因此,单击目标
任何帮助都会很好。我很紧张,我在jQuery上比在php上更环保,所以希望你们中的一位能帮我解决这个问题。这是一个配置问题。如果输入的域没有域名上的前导www.,则会出现问题
添加标题('Access-Control-Allow-Origin:');到php文件解决了这个问题。您可以指定允许或使用的特定域*您的办公室是否有任何代理?您是否使用类似Fiddler()的工具检查请求和响应?很遗憾,我与出现问题的机器不在同一位置。它也不是一个办公室,而是一个私人住宅。我打算在某个时候去Mac商店试着调试,直到他们踢我出去,引起任何好奇的人的兴趣。我去了苹果专卖店,在6台不同的Mac电脑上用相同的操作系统和浏览器进行了试用,结果都成功了。所以我只需要找出他的机器上是什么导致了问题。
<form id="signin_form" method="POST" action="index.php?cmd=Signin">
<table id="welcomeSignin">
<tr>
<td>
<div class="welcome"><span class="signin-title-text f-xxlarge-or-link-goth">Welcome Back!</span></div>
<div id="error_msg"></div>
<table id="input_field_table">
<tr>
<td class="input-field-cell">
<div class="singin-titles f-medium-gr-bold">Username</div>
</td>
<td class="input-field-cell">
<div class="signin-inputs"><input class="signin styled" type="text" name="user_name"></div>
</td>
</tr>
<tr>
<td class="input-field-cell">
<div class="singin-titles f-medium-gr-bold">Password</div>
</td>
<td class="input-field-cell">
<div class="signin-inputs"><input class="signin styled" type="password" name="user_pass"></div>
<div class="forgot"><a href="" class="forgot-password f-small-or-link">Forgot your password?</a></div>
</td>
</tr>
<tr>
<td colspan="2">
<input type="hidden" name="post_type" value="signin">
<span id="create"><span class="f-medium">Don't have an account? <a href="" class="create"><span class="f-medium-or-link">click here</span></a></span></span>
<span class="active-login"><input type="checkbox" class="signin-radio" name="active_login"> <span class="f-medium"> Keep me signed in</span></span>
<div id="sign_in"><span class="signin-submit-button"><img src="../images/ready-create-icon.png"></span> <span class="signin-submit-text f-xxxlarge-gr-title-link">Sign In!</span></div>
</td>
</tr>
</table>
</td>
</tr>
</table>
$('#sign_in').click(function(){
var url = window.location.href;
$('#error_msg').html('');
var username = $('input[name="user_name"]').val();
var password = $('input[name="user_pass"]').val();
var err = '';
$.ajax({
url: ajaxUrl+'validate_signin',
type: 'GET',
cache: false,
data: { username: encodeURIComponent(username), password: encodeURIComponent(password)},
success: function(data, status, xhr){
if(data !== 'OK'){
err = data;
$('#error_msg').html(err);
return false;
}else{
$('#signin_form').submit();
return false;
}
},
error: function(xhr, ajaxOptions, thrownError){
var tmp_err = "";
tmp_err = ":: "+xhr.responseText+" :: "+xhr.responseXML+" :: ";
alert(tmp_err);
alert(xhr.responseText);
alert(thrownError);
window.location.href = url;
}
});
return false;
});