Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 努力为我的应用程序构建JS/PHP验证函数_Javascript_Windows 8_Windows Applications - Fatal编程技术网

Javascript 努力为我的应用程序构建JS/PHP验证函数

Javascript 努力为我的应用程序构建JS/PHP验证函数,javascript,windows-8,windows-applications,Javascript,Windows 8,Windows Applications,我有一个web服务,在查询web服务并找到匹配项时返回JSON对象,成功返回的示例如下: {“术语”:[{“术语”:{“术语名称”:“调焦器”,“定义”:“调焦器或第一辅助照相机…”}]} 如果查询未生成匹配项,则返回: 错误查询:从termID=xxx的术语中选择termName、definition 现在,当我通过我的Win 8 Metro应用程序访问它时,我将使用以下代码解析JSON符号对象以获得JS对象: var searchTerm=JSON.parse(Result.response

我有一个web服务,在查询web服务并找到匹配项时返回JSON对象,成功返回的示例如下:

{“术语”:[{“术语”:{“术语名称”:“调焦器”,“定义”:“调焦器或第一辅助照相机…”}]}

如果查询未生成匹配项,则返回:

错误查询:从termID=xxx的术语中选择termName、definition

现在,当我通过我的Win 8 Metro应用程序访问它时,我将使用以下代码解析JSON符号对象以获得JS对象:

var searchTerm=JSON.parse(Result.responseText)

然后我有了处理
searchTerm
并将返回值绑定到app页面控件的代码。如果我输入了一个在DB中找到匹配项的成功查询,那么一切都很好

我无法找到一种验证错误查询的方法。我想测试
var searchTerm=JSON.parse(Result.responseText)
返回的值,如果结果成功,则继续执行我现在正在执行的操作,但如果失败,则以不同的方式处理结果。我应该做什么检查来测试这个?我很高兴在我的应用程序或web服务中实现附加验证,任何建议都将不胜感激


谢谢

有几种不同的方法来解决这个问题

一种方法是利用HTTP响应头来中继有关查询的信息(即,对于已找到的记录,HTTP
200
状态;对于未找到的记录,HTTP
404
;对于错误请求,HTTP
400
,等等)。然后可以检查响应代码以确定需要执行的操作。这种方法的优点是不需要对响应消息格式进行任何更改。缺点可能是您必须修改返回的标题。这是用于真正RESTful服务的更典型的方法

另一种方法可能是将成功/错误消息作为结构化JSON响应的一部分返回。这样您的JSON可能看起来像:

{
    "result":"found",
    "message":
        {
            "terms":[{"term":{"termName":"Focus Puller","definition":"A focus puller or 1st assistant camera..."}}]}
        }
}
显然,您可以更改数据中
result
的值以返回错误,并将错误消息放入
message


这里的优点是,您不必担心头的修改,而且返回的数据始终可以通过
JSON.parse()
进行解析。缺点是,现在您的回复信息中有额外的详细信息。

Mike,谢谢您的全面回复!现在我将实现第二种方法,因为我没有处理HTTP响应的经验。不过,我接受你关于冗长的观点,如果可能的话,我一定会返回并实现HTTP解决方案。不管怎样,谢谢,圣诞快乐!