Ajax调用的文件包含错误

时间:2015-04-18 10:50:10

标签: javascript php jquery html ajax

我有2页,处理页面和表格页面。

所以基本上表单页面由很多输入文本组成,一旦用户单击提交按钮,它就会运行ajax调用并调用进程页面。进程页面需要用户的凭据,如id和密码。

我的ajax调用基本上是成功运行,但进程页面没有运行。当没有用户登录时,进程页面将输出未定义的索引消息。在这种情况下是id或密码,因为基本上没有数据传递(ID和密码)到进程页面。

这是我的ajax调用函数

function postTweet(){
$.ajax({
    url : 'blablabla',
    type : 'POST',
    data : blablabla,
    success: function() {
        div1.append("Success!");
 }})
 .fail(function(data){
    console.log(data);
  });
}

所以基本上在非登录用户点击提交按钮之后,仍然会显示成功消息,尽管流程页面中没有进程正在运行。

我想要的是,如果该过程基本上没有运行,我应该提示一个正确的信息 有人能帮帮我吗?

非常感谢任何帮助。感谢

2 个答案:

答案 0 :(得分:1)

您的success函数可以处理参数(查看ajax成功here

例如:

PHP文件

<?php
echo json_encode(array('test' => "hello world")); // echo any array data
exit(); // Stop php from processing more, you only want the json encoded data to be echoed
?>

Javascript文件

...
dataType: 'json', // This is needed to convert the echoed php data to a json object
success: function (response) { // "response" will be the converted json object
    console.log(response);
},
...

console.log(response);看起来像Object {test: "hello world"}

修改

在你的情况下,你可以这样做:

<?php
if ( ! isset($username) ) {
    echo json_encode(array('success' => FALSE, 'message' => "Username is incorrect."));
}
...
exit();
?>

在javascript中提醒上述错误消息:

...
success: function (response) {
    if (response.success) {
        alert('success!');
    } else {
        alert(response.message);
    }
},
...

答案 1 :(得分:0)

有两种方法可以解决这个问题。

  1. 如果表单页面包含登录凭据输入,那么您可以在java脚本中验证登录凭据是否已填写,然后调用ajax进程。
  2. 您可以使用isset()方法验证ajax文件中的登录凭据,如果未验证登录凭据,则可以向ajax调用发送有关登录失败的简单消息。