我正在开发一个以 JSON 形式返回数据的 PHP Web 服务。我现在正在使用 jQuery/javascript 文件测试 Web 服务。它似乎正在正确地进行调用和接收数据,但来自服务器的返回值似乎有太多的双引号。
PHP:
public static function getToken($username, $password)
{
$token = AuthenticationController::authenticate($username, $password);
if ($token)
{
$user = AuthenticationController::getUserFromToken($token);
if (UserController::userIsVerified($user->id))
{
$t = array('token' => $token);
return json_encode($t);
}
return json_encode(array('error' => 'This account has not been verified. Check email and click the provided link to verify the account.'));
}
return json_encode(array('error' => 'Authentication failed.'));
}
JS:
req.done(function(msg)
{
if (msg.error)
{
error = true;
message = msg.error;
}
else if (msg.message)
{
message = msg.message;
}
else if (msg.token)
{
token = msg.token;
}
else
{
error = true;
message = "An unknown error has occured.";
}
});
一方面,该msg
对象不是以 JSON 对象的形式返回,而是以字符串的形式出现,因此我必须对其进行$.parseJSON(msg)
处理。您在下面看到的,token 变量最终写成“mylongtoken”(包括引号)。如果您在 firebug 中查看该变量,它就像这样:“mylongtoken”。这只是默认行为,我需要去掉引号吗?