Jas*_*hen 0 javascript reactjs
这是我在Reactjs面临的挑战,尽管我不相信它必然归功于它.我正在尝试在React中进行API调用.虽然它有效,但代码还会显示我的API密钥,下面用我的javascript变量表示sting.当我在浏览器中预览代码时,sting很清楚地显示了我的API密钥.
render: function() {
if (this.state.trial) {
return this.iftroo();
}
}
});
var Troo = React.createClass({
render: function() {
var sting = "<?php
$con = mysqli_connect('localhost', 'root', '', 'worldly') or die("Trying");
$query = "select * from testi";
$result = mysqli_query($con, $query);
while($row = mysqli_fetch_array($result)){
echo $row["userName"];}
?>";
var weather = new XMLHttpRequest();
weather.open("GET", "http://api.openweathermap.org/data/2.5/weather?q=London,uk&units=imperial&appid="+sting, false);
weather.send(null);
var r = JSON.parse(weather.response);
var tempurature = r.main.temp;
return (
<p>
{tempurature}
</p>
Run Code Online (Sandbox Code Playgroud)
我知道为了让这个工作,我可能不得不在我的PHP中嵌入我的javascript代码.但是,这样做会导致错误,例如PHP无法识别javascript var字符.
我可以采取哪些措施来隐藏浏览器中的API密钥?
如果要从浏览器中隐藏API密钥,则必须永远不要将其提供给浏览器.
您不能使用客户端JavaScript的API密钥并将其隐藏在客户端之外.
从服务器发出需要使用它的任何HTTP请求(例如,使用PHP的cURL库).