Php 通过jquery401调用REST服务
我目前正试图从我用PHP/Slim创建的REST服务中检索数据。该服务很好地从数据库检索数据,但是当我试图通过AJAX调用获取数据时,我会遇到一个错误 最初控制台说这是因为没有设置Php 通过jquery401调用REST服务,php,jquery,ajax,rest,slim,Php,Jquery,Ajax,Rest,Slim,我目前正试图从我用PHP/Slim创建的REST服务中检索数据。该服务很好地从数据库检索数据,但是当我试图通过AJAX调用获取数据时,我会遇到一个错误 最初控制台说这是因为没有设置访问控制允许源代码参数,但这是通过将参数添加到web.config(IIS)中修复的-现在我只剩下GET了http://localhost:8081/api/v1/users 401(未经授权)登录到Chrome控制台 该调用旨在托管在不同的服务器上,因此为了进行测试,我将该站点放在端口:8082上,RESTful服务
访问控制允许源代码
参数,但这是通过将参数添加到web.config
(IIS)中修复的-现在我只剩下GET了http://localhost:8081/api/v1/users 401(未经授权)
登录到Chrome控制台
该调用旨在托管在不同的服务器上,因此为了进行测试,我将该站点放在端口:8082
上,RESTful服务位于:8081
我的AJAX调用编写如下(我也尝试了jsonp
,但由于URL重写?回调=…
会抛出404错误)
我的RESTful服务如下所示:
header('Content-Type: application/json');
// Load the Slim framework
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
// Create a new Slim object
$app = new Slim\Slim();
// Define RESTful actions
$app->get('/users', function() { get("SELECT * FROM users"); });
function get($sql) {
try {
$db = getConnection();
$stmt = $db->query($sql);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '{' . json_encode($results) . '}';
}
catch (PDOException $e) {
echo '{"Error": {"Text": ' . $e->getMessage() . '}}';
}
}
[...]
您能否尝试使用浏览器直接访问该服务?
header('Content-Type: application/json');
// Load the Slim framework
require 'Slim/Slim.php';
\Slim\Slim::registerAutoloader();
// Create a new Slim object
$app = new Slim\Slim();
// Define RESTful actions
$app->get('/users', function() { get("SELECT * FROM users"); });
function get($sql) {
try {
$db = getConnection();
$stmt = $db->query($sql);
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '{' . json_encode($results) . '}';
}
catch (PDOException $e) {
echo '{"Error": {"Text": ' . $e->getMessage() . '}}';
}
}
[...]