gpt4 book ai didi

javascript - 未定义 JSONP 跨域

转载 作者:行者123 更新时间:2023-11-28 06:50:13 25 4
gpt4 key购买 nike

我有一个基于 Php Slim Framework 的 API,想要为我的网站生成 JSONP。当我调用网站时:'http://api.mangayurdu.com/users?callback=JSON_CALLBACK '。它返回一个空白页,上面写有 JSON CALLBACK() 。当登录到控制台时,它是未定义的。

API的index.php:

<?php
require 'vendor/autoload.php';

$app = new \Slim\Slim();
$app->contentType('application/json');
$app->get('/users', 'getUsers');
$app->run();

function getConnection() {
$dbhost="localhost";
$dbuser="";
$dbpass="";
$dbname="";
$dbh = new PDO("mysql:host=$dbhost;dbname=$dbname;mysql:charset=utf8mb4", $dbuser, $dbpass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

return $dbh;
}

function getUsers() {
$sql = "select * FROM manga";
try {
$db = getConnection();
$stmt = $db->query($sql);
$users = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo $_GET['callback'] . '('.json_encode($users).')';
}
catch(PDOException $e) {
echo $_GET['callback'] . '('.json_encode($e->getMessage()).')';
}
}

Javascript:

.factory('MY', function($http){
var fax= {};
var url = 'http://api.mangayurdu.com/users?callback=JSON_CALLBACK';
fax.isimler = $http.jsonp(url);
return fax;
})

.controller('indexCtrl', function($scope, MY) {
MY.isimler.success(function(alHemen){
$scope.mangas = alHemen;
});
})

enter image description here

最佳答案

不要将其作为 application/json 提供。将其作为 application/javascript 提供。需要执行JSONP。

此外,Slim 似乎不应该使用 echo。尝试调用 $app->response->setBody

关于javascript - 未定义 JSONP 跨域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com