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

Struggling to build a JS/PHP validation function for my app

本文关键字:JS 一个 PHP 函数 验证 我的 应用程序 构建 努力      更新时间:2023-09-26

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

{"terms":[{"term":{"termName":"Focus Puller","definition":"A focus puller or 1st assistant camera..."}}]}

如果查询没有产生匹配,则返回:

Errant query: SELECT termName, definition FROM terms WHERE termID = xxx

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

var searchTerm = JSON.parse(Result.responseText)

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

我无法解决的是验证错误查询的方法。我想测试由var searchTerm = JSON.parse(Result.responseText)返回的值,并继续做我现在正在做的事情,如果它是一个成功的结果,但是在失败时处理结果不同。要验证这一点,我应该做什么检查?我很高兴在我的应用程序或web服务中实现额外的验证,任何建议都很感激。

谢谢!

有两种不同的方法来实现这一点。

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

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

{
    "result":"found",
    "message":
        {
            "terms":[{"term":{"termName":"Focus Puller","definition":"A focus puller or 1st assistant camera..."}}]}
        }
}

显然可以改变数据中result的值以返回一个错误,并将错误消息放在message中。

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