【发布时间】:2016-07-14 05:13:24
【问题描述】:
这是我在 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>
我知道为了让它工作,我可能必须在我的 PHP 中嵌入我的 javascript 代码。但是,这样做会导致错误,例如 PHP 无法识别 javascript var 字符。
我可以采取哪些措施来对浏览器隐藏我的 API 密钥?
【问题讨论】:
-
会发现许多 API 不提供 CORS 或 jsonp 支持,因此您不会在浏览器中公开凭据
标签: javascript reactjs