对于标题我很抱歉,我只是不确定如何描述这个。IF语句中的Javascript对象声明
基本上我使用JQUERY/ajax来调用一个php脚本来验证一些输入并获取一些数据。返回的数据编码为JSON,因此我在JQUERY中将数据类型设置为JSON,并返回一个对象。
我刚刚发现,在某些网络连接没有以预期的方式响应的情况下(它必须说是不寻常的),ajax调用会调用JQUERY中的错误选项。
在大多数情况下,我从服务器返回一条错误消息,但有时会出现错误,并且没有从服务器端脚本发回JSON。我还没有完全追查到究竟会导致网络状况的原因,但无论如何,我认为我只是用Javascript处理它,而我还不知道。
这个想法是检查是否已经创建了期望的对象,如果没有,然后创建它与两个预期的属性并运行对话。这样我会避免重复编写错误消息。这不是一个很大的节约,但我想尝试这个原则。
$.ajax({
url: 'getmetadata.php',
type: "POST",
data: entereddata,
dataType: "json",
timeout: (7000), //wait 7 seconds
error: function(data)
{
// handle errors
if(data)
{
// Do nothing error message will be issued from the data object
}else{
// no message was returned. Some other error occured.
function tempdata()
{
this.errortitle = "Error title";
this.errormessage = "Error text";
};
var data = new tempdata();
};
// issue error message
runDialogue(data.errortitle,data.errormessage);
}, //ERROR
success: function(data)
{
}; // SUCCESS
}); // AJAX
在上面的代码中,数据对象应该存在或不存在于“if”语句之前。当我到达runDialogue()时;对象数据应该始终存在以便通过errortitle和errordescription属性。
当“数据”对象存在时,没有问题。什么是不工作是什么时候“数据”对象不存在,即如果“如果”测试失败。其他应该创建对象“数据”,但没有。
我做错了什么?
此外,在“else”子句中定义该函数非常可疑。 – Pointy 2011-04-11 20:33:33
我没有定义一个函数。它是一个对象,只有在它尚未退出时才应该定义它。 – T9b 2011-04-11 20:38:21
@Pointy::)将函数调用更改为对象分配 – Chandu 2011-04-11 20:38:25