在javascript http post请求之后处理不同的php响应
Handling different php responses after a javascript http post request
我正在开发一个Android应用程序,它使用PHP/MySQL将数据从应用程序发送到服务器,以便注册/登录用户。我已经编写了Javascript和PHP文件来发送和接收JSON数据并将其插入MySQL数据库。我遇到的问题是如何处理来自PHP的不同响应。
示例:
<?php
//decode json object
$json = file_get_contents('php://input');
$obj = json_decode($json);
//variables
$user_firstname = $obj->{'user_firstname'};
$user_lastname = $obj->{'user_lastname'};
$user_email = $obj->{'user_email'};
$user_password = $obj->{'user_password'};
if([variables] != null){
//check for an existing email in db
mysql_query("Check if email exists");
if(email exist){
//pass a response to java file
return user_exists;
die();
}else{
//success
return success;
}
}
?>
我想要的只是处理这些不同的返回值,以便与 android 应用程序内的用户进行交互。
我认为您应该为此使用HTTP响应代码。例如,当用户成功创建时,您的 php 脚本将返回HTTP 200 - OK
,当用户已存在时将返回HTTP 409 Conflict
。这就是 RESTfull API 通常的工作方式。在安卓设备上,你需要检查状态码,决定该怎么做。
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpget = new HttpPost("http://www.google.com/");
HttpResponse response = httpclient.execute(httpget);
int statusCode = response.getStatusLine().getStatusCode();
您可以通过
创建一个关联数组并将其传递给 json_encode()
来制作 json 响应,这将返回一个可以回显到 java 客户端的字符串。不要忘记使用 header()
函数设置适当的 Content-Type
标头。适当设置 HTTP 响应代码也是一个好主意。我正在想象这样的东西:
$responseArray = array('response' => 'success'); // or 'user_exists'
$responseJson = json_encode($responseArray);
header('HTTP/1.1 200 OK'); // or 4xx FAIL_TEXT on failure
header('Content-Type: application/json');
echo $responseJson;
然后,您必须在 Java 客户端上解析此响应。
相关文章:
- 使用AJAX只获取PHP响应
- AJAX-没有得到简单的php响应(返回“undefined”)
- AJAX PHP - 响应是一个具有空值的对象
- 如果 PHP 响应等于某物,如何使 jQuery 警报
- DropzoneJS:上传成功后如何获得PHP响应
- PHP:响应 AJAX 发布请求
- 在javascript http post请求之后处理不同的php响应
- 使用 ajax 显示 php 响应文本
- PHP响应变得非常慢(使用MySQL)
- Ajax,处理 javascript 中的 php 响应
- 从 php 响应 AJAX 的更好方法
- jQuery认为每个PHP响应都有staus 0
- 将 PHP 响应输出为 XML
- 将PHP响应日期转换为客户端本地时间
- 使用jQuery将PHP响应的字符串分配给Javascript中的变量
- 如何在JavaScript中动态创建的输入字段中更新特定的输入字段,ajax从PHP响应
- 尝试用Javascript填充字段,由PHP响应
- 在HTML中使用返回的JSON编码AJAX PHP响应<作为值
- 如何在ajax中添加基于php响应的消息,同时处理
- 原型Javascript框架-获取PHP响应