从XMLHttpRequest获取POST数据
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从XMLHttpRequest获取POST数据相关的知识,希望对你有一定的参考价值。
我正在尝试让Google登录在我的网站上工作。 当我手动设置令牌ID时,一切正常,但我不知道如何从XMLHttpRequest获取它。
glogin.js
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
var id_token = googleUser.getAuthResponse().id_token;
console.log('ID: ' + id_token);
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://example.com/signup.php');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send('idtoken='+id_token);
}
signup.php
<?php
require_once 'google-api-php-client/vendor/autoload.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (!empty($_POST["idtoken"]) && $_POST["idtoken"] != NULL) {
$client = new Google_Client(['client_id' => $CLIENT_ID]); // Specify the CLIENT_ID of the app that accesses the backend
$payload = $client->verifyIdToken($_POST["idtoken"]);
if ($payload) {
$userid = $payload['sub'];
echo 'valid';
} else {
// Invalid ID token
echo 'invalid';
}
}
}
?>
答案
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
var id_token = googleUser.getAuthResponse().id_token;
console.log('ID: ' + id_token);
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
window.location.href = "https://example.com/signup.php?tokenid="+id_token;
}
我放弃,为什么甚至浪费我的时间与XMLHttpRequest,而我可以这样做。
以上是关于从XMLHttpRequest获取POST数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 XMLHttpRequest 发送 POST 数据
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
XMLHttpRequest.open();第一个参数post,get有啥不同,啥时候选啥,还有其他的,都有啥区别