2
我一直在本地开发应用程序,并在实际服务器上遇到麻烦。jQuery AJAX请求错误状态0
每当我提交一个AJAX请求与jQuery它给我一个错误,错误status:0
和和statusText: 'error'
。
Chrome检查器甚至没有显示请求的响应代码,它只是说失败。
当我仔细检查它时,我注意到所有数据都已发送并且PHP文件实际处理了它。例如,在下面的请求中,用户确实已创建。错误的响应代码阻止了其他请求的执行(因为它们依赖于“成功”响应)。
下面是一个示例请求:
var cct = $.cookie('ttc_csrf_cookie'); // csrf protection
var sUrl = "<?= base_url(); ?>user/create/";
var serialized = {
name: me.name,
email: me.email,
oauth_provider: 'facebook',
oauth_uid: me.id,
ttc_csrf_token: cct
};
$.ajax({
url: sUrl,
type: "POST",
data: serialized,
error: function(someStuffHere) {
//* THIS CODE RUNS. SHOWS ERROR STATUS: 0 */
},
success: function(user_id) {
//******** THIS HERE NEVER RUNS ***********///
}
});
这里是相应的PHP代码:
public function create() {
if($this->input->post()) {
$user['name'] = $this->input->post('name');
$user['email'] = $this->input->post('email');
$user['oauth_provider'] = $this->input->post('oauth_provider');
$user['oauth_uid'] = $this->input->post('oauth_uid');
$user['last_activity'] = date('Y-m-d H:i:s');
$user_id = $this->Users->create_user($user);
$this->session->set_userdata('user_id', $user_id);
echo $user_id;
}
}
这两个片段是仅是示例。所有AJAX请求都不能在现场服务器上运行。
它可能是什么?谢谢!
更新:我缩小了范围,并且在回显结果时出现问题。当我注释掉回显时,不会抛出任何错误(但是,当然,不会发送任何结果)。
只是暂时从ajax调用中删除错误字段,并查看console.log中会发生什么......错误将清晰到足以给您提供信息...... –
域是一样的吗?如果您正在访问来自不同域的webservice,则必须在$ .ajax – dhinesh
中设置crossDomain:true所以我缩小了范围,并且在回显结果时出现问题。当我注释掉回显时,不会抛出任何错误(但是,当然,不会发送任何结果)。 –