调用PHP不返回任何值
AJAX Call to PHP not returning any value
我正在尝试使用AJAX调用PHP文件中的函数。
该函数基本上接受在AJAX调用中提交的数据,向API发出几个其他请求,并从外部API获取JSON对象。
我想将JSON对象发送回我的页面,由javascript执行。
下面是我的代码:function secureGet(sumNam){
$.ajax({
dataType: "json",
type: 'POST',
data: {sumNam: sumNam},
url: 'get_score.php',
success: function (json, state) {
console.log(state);
statsObject = json;
console.log(statsObject);
}
})
}
PHP: <?php
require_once 'apikey.php';
if(isset($_POST['sumNam'])){
$name = $_POST['sumNam'];
secureProxy($name);
}
function secureProxy($summoner_name){
$url_one = "https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/" . $summoner_name . "?api_key=" . $api_key;
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_URL, $url_one);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result_one = curl_exec($ch);
curl_close($ch);
$json_array = json_decode($result_one, true);
$summoner_id = $json_array[$summoner_name]['id'];
$url_two = "https://na.api.pvp.net/api/lol/na/v2.2/matchhistory/" . $summoner_id . "?rankedQueues=RANKED_SOLO_5x5,RANKED_TEAM_5x5&beginIndex=0&endIndex=10&api_key=" . $api_key;
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch2, CURLOPT_URL, $url_two);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
$result_two = curl_exec($ch2);
curl_close($ch2);
print_r($result_two);
}
?>
我认为呼叫成功了,因为在我的控制台中它说:
iGET XHR http://127.0.0.1/b2p/get_score.php [HTTP/1.1 200 OK 1551ms]
但是控制台没有记录返回对象的任何信息。
为什么会发生这种情况?
谢谢!
<br />
<font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined variable: api_key in C:'wamp'www'b2p'get_score.php on line <i>12</i>
…这持续了一段时间
{"status": {"message": "Missing api key", "status_code": 401}}
但是当我单独执行时,API调用可以工作。
您看到的是php通知或警告。如果启用了error_reporting,它们将在顶部发送的任何响应中回显警告。这将有效地使你发回的任何json无效,导致200错误,错误说你在某处缺少API密钥,我从那里开始,它还会给你文件名和行号。
转到C:'wamp'www'b2p'get_score.php并检查第12行,无论你在做什么,都需要一个API密钥,而你没有提供一个。
很可能是这一行$url_one = "https://na.api.pvp.net/api/lol/na/v1.4/summoner/by-name/" . $summoner_name . "?api_key=" . $api_key;
。
是否在这行执行之前定义了$api_key
?
请记住,PHP函数(不像javascript)创建自己的变量作用域,并且只能看到传递给函数或在函数本身中定义的变量。
您需要在调用函数时将API键变量传递给函数
我认为它没有返回任何东西,因为在你的PHP中,你没有设置你返回的类型。因为你将返回Json格式,你必须设置你的PHP头如下:
header('Content-type: application/json');
echo json_encode($result_two);
?>
相关文章:
- AJAX:$_GET不返回任何值
- WebKitBrowser.StringByEvaluatingJavaScriptFromString 不返回任何值
- Javascript函数不返回任何值
- 没有 NaN 的 x === x 返回 false 是否有任何值
- 在 nodeJs 中不返回任何值的 POST
- Ajax 注册不返回任何值或错误
- 整理代码:检查多个值,如果找到任何值,则返回null
- Javascript方法计算成本()不为我返回任何值
- .val,但不返回任何值[JQuery]
- Jquery文本框在asp.net中不返回任何值
- 如果未返回任何值,则保持货币格式的JQgrid单元格为空,不带默认值
- jQuery未返回任何值
- Javascript/Jquery-如何检查函数是否返回任何值
- 当regex匹配测试字符串时,Javascript .test要么不返回任何值,要么返回false
- Scraper不返回任何值与jquery使用cheerio
- getSelection在Chrome扩展中不返回任何值
- JQuery“contains"对HTML编码不返回任何值
- ExtJS Forms >.getFieldValues()函数没有返回“时间字段”的任何值;xtype
- 当包含h2,h3时,inner HTML不返回任何值
- 调用PHP不返回任何值