javascript - 不允许未经身份验证的请求。SyntaxError:位置 0 处 JSON 中的意外标记 U
问题描述
我是使用 Nodejs 的 Js 初学者。下面是这样的代码:
const express = require('express');
const bodyParser = require('body-parser');
const request = require('request');
const app = express();
app.use(bodyParser.urlencoded({extended: true}));
app.get("/", (req, res, next) => {
res.sendFile(__dirname + "/index.html");
});
app.post("/", (req, res, next) =>{
try {
var crypto = req.body.crypto;
var fiat = req.body.fiat;
var baseURL = "https://apiv2.bitcoinaverage.com/indices/global/ticker/all?crypto=crypto&fiat=fiat";
var finalURL = baseURL + crypto + fiat;
request(finalURL, (error, response, body) => {
var data = JSON.parse(body);
var price = data.last;
res.send("<h1>The current price of " + crypto + " is " + price + fiat + "</h1>");
});
} catch (err) {
console.log(err);
}
});
但它向我发送了这样的错误,我不是无法理解它。
undefined:1 不允许未经身份验证的请求。在https://pro.bitcoinaverage.com购买新计划或开始免费试用 ^
SyntaxError: Unexpected token U in JSON at position 0
at JSON.parse (<anonymous>)
at Request._callback (F:\ProgProb\WebDep\Bitcoin-Ticker\index.js:38:20)
at Request.self.callback (F:\ProgProb\WebDep\Bitcoin-Ticker\node_modules\request\request.js:185:22)
at Request.emit (events.js:311:20)
at Request.<anonymous> (F:\ProgProb\WebDep\Bitcoin-Ticker\node_modules\request\request.js:1154:10)
at Request.emit (events.js:311:20)
at IncomingMessage.<anonymous> (F:\ProgProb\WebDep\Bitcoin-Ticker\node_modules\request\request.js:1076:12)
at Object.onceWrapper (events.js:417:28)
at IncomingMessage.emit (events.js:323:22)
at endReadableNT (_stream_readable.js:1204:12)
解决方案
//try to declare baseURL like this:
var baseURL="https://apiv2.bitcoinaverage.com/indices/global/ticker/";
//--------------------------------------------------------------------
//this code worked for me:
//--------------------------------------------------------
const express = require("express");
const bodyParser = require("body-parser");
const request = require("request");
const app = express();
app.use(bodyParser.urlencoded({extended:true}));
app.get("/",function(req,res){
res.sendFile(__dirname + "/index.html");
});
app.post("/",function(req,res){
try{
var crypto = req.body.crypto;
var fiat = req.body.fiat;
var baseURL = "https://apiv2.bitcoinaverage.com/indices/global/ticker/";
var finalURL = baseURL + crypto + fiat;
request(finalURL,function(error,response,body){
var data = JSON.parse(body);
var price = data.last;
res.send("<h1>The current price of " + crypto + " is " + price + fiat + "</h1>");
});
}catch(err){
console.log(err);
}
});
app.listen(3000,function(){
console.log('server is running on port 3000');
});
推荐阅读
- java - 陷入Java电影猜谜游戏的逻辑(通过udacity)
- php - 这条线有什么问题?我试图弄清楚几个小时以来(php)
- python - Python正则表达式匹配没有点的单词
- worklight-server - Worklight 6.1 服务器未在 Windows 2012 中运行
- spring-boot - 热插拔,热重载,实时重载
- c++ - 用于 if-else 的字符串和数字用户输入,接收错误
- dns - 哪些影响会导致 SOA 丢失?
- python - Python 多索引和自定义排序
- php - php中的登录计数
- freeswitch - Freeswitch 使用密码发起到 SIP 端点