json - 从 heroku 获取有关 HTTPS 的错误

标签 json angularjs node.js heroku https

我有一个用 angular 编写并通过 nodejs 部署到 heroku 的应用程序。 当我在家用电脑上以开发模式运行它时,一切都很棒,没有出现任何错误。但是一旦我将它传送到 heroku,我就会在控制台上收到以下错误消息:

Mixed Content: The page at 'https://yasawebsite.herokuapp.com/#/' was loaded
over HTTPS, but requested an insecure script
'http://api.tumblr.com/v2/blog/asayorku.tumblr.com/posts?api_key=[MY SECTRET API-KEY]&callback=angular.callbacks._0'. 
This request has been blocked; the content must be served over HTTPS.

我从 tumblr up 调用数据的方式有问题吗?

这就是我正在做的:

$http.jsonp('http://api.tumblr.com/v2/blog/asayorku.tumblr.com/posts?api_key=[MY SECRET API Key]&callback=JSON_CALLBACK')
  .success(function (data) {
    // my data analysis process
  });

这就是我在 server.js 文件中设置的内容

var express = require('express')
    , morgan = require('morgan')
    , bodyParser = require('body-parser')
    , methodOverride = require('method-override')
    , app = express()
    , port = process.env.PORT || 3000
    , router = express.Router();

app.use(express.static(__dirname + '/dist'));
app.use(morgan('dev'));
app.use(bodyParser());
app.use(methodOverride());

router.get('/', function(req, res, next) {
    res.render('index.html');
});

app.use('/', router);

app.listen(port);
console.log('App running on port', port);

我想强调的是,除了我用 $http 进行的数据调用外,一切正常,我应该使用 vanilla js 还是 jquery 方法?如果是这样,为什么会发生这种情况 o.0?

此外,它调用/dist 文件夹的原因是因为该应用程序首先由 Grunt 缩小。

最佳答案

尝试将您的 API 请求更改为此(使协议(protocol)相对):

$http.jsonp('//api.tumblr.com/v2/blog/asayorku.tumblr.com/posts?api_key=[MY SECRET API Key]&callback=JSON_CALLBACK')
  .success(function (data) {
    // my data analysis process
  });

关于json - 从 heroku 获取有关 HTTPS 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28048514/

相关文章:

json - (+/-) JSON 导入中的无穷大

javascript - 按钮不改变背景和文本的颜色

angularjs - 如何设置带有日期的 Material 设计 slider

node.js - 使用 NodeGit 在存储库中执行 `git clean`

javascript - 日期选择器未将所选日期保存到 mysql

android - 在 Android 中发布 JSON 并检索响应

javascript - JSON发送的数据始终为空

javascript - 通过 HTTP GET 传递多个参数

javascript - 未知提供商 : $scopeProvider initialling angularjs application

javascript - 如何对调用另一个返回 promise 的函数进行单元测试?