【发布时间】:2015-07-04 01:13:14
【问题描述】:
我正在尝试使用 ajax 实现 HybridAuth。
代码:
PHP:(会被ajax调用)
<?php
header('Content-type: application/json');
$provider = $_GET["provider"];
$config = '../libaries/hybridauth/config.php';
require_once( "../libaries/hybridauth/Hybrid/Auth.php" );
try {
$hybridAuth = new Hybrid_Auth($config);
$adapter = $hybridAuth->authenticate($provider);
$userProfile = json_encode($adapter->getUserProfile());
echo $_GET['callback'] . '(' . "{$userProfile}" . ')';
} catch (Exception $e) {
echo "Ooophs, we got an error: " . $e;
}
?>
Javascript:
socialRegister: function () {
var self = this;
var val = 'provider=' + self.get("provider");
return $.ajax({
type: "GET",
url: path.urlRoot + 'ext/socialRegisterAndAuthentication.inc.php',
dataType: "jsonp",
data: val
});
}
但我总是收到以下错误:
XMLHttpRequest 无法加载 https://api.twitter.com/oauth/authenticate?oauth_token=123。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost' 因此不允许访问。
我知道,这意味着 Twitter 服务器不允许我的来源。有解决方法吗?是否可以使用 ajax 进行“单页”注册? (希望是的 - 在 quora.com 上它可以工作;))
推特设置:
最好的 费边
【问题讨论】:
标签: javascript php jquery ajax hybridauth